Runtime API Examples
This page demonstrates usage of some of the runtime APIs provided by VitePress.
The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:
md
<script setup>
import { useData } from 'vitepress'
const { theme, page, frontmatter } = useData()
</script>
## Results
### Theme Data
<pre>{{ theme }}</pre>
### Page Data
<pre>{{ page }}</pre>
### Page Frontmatter
<pre>{{ frontmatter }}</pre>Results
Theme Data
{
"useTheme": true,
"articleAnalyze": {
"showIcon": true,
"dateFormat": "yyyy-MM-dd",
"showInfo": true,
"showAuthor": true,
"showCreateDate": true,
"showUpdateDate": false,
"showCategory": false,
"showTag": false,
"teleport": {
"position": "after",
"className": "teleport"
}
},
"articleShare": {
"enabled": true
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"backTop": {
"enabled": true,
"content": "progress"
},
"breadcrumb": {
"enabled": true,
"showCurrentName": false,
"separator": "/",
"homeLabel": "首页"
},
"clickEffect": {
"enabled": true
},
"codeBlock": {
"enabled": true,
"collapseHeight": 500,
"overlay": false,
"overlayHeight": 400,
"langTextTransform": "lowercase"
},
"comment": false,
"docAnalysis": {
"enabled": true,
"title": "${icon}站点信息",
"wordCount": false,
"readingTime": false,
"statistics": {
"siteView": true,
"pageView": true,
"permalink": true
}
},
"docFooterCopyright": {
"enabled": true,
"author": "苏木",
"authorLink": "https://docs-site.github.io/vitepress-theme-mist/",
"pathMapping": {},
"copyrightText": "本博客所有文章除特别声明外,均采用",
"licenseName": "BY-NC-SA 4.0",
"licenseLink": "https://creativecommons.org/licenses/by-nc-sa/4.0/"
},
"footerGroup": [],
"footerInfo": {
"topMessage": [
"莫道桑榆晚, 为霞尚满天"
],
"bottomMessage": [
""
],
"theme": {
"show": true,
"name": "mist@1.2.5",
"link": "https://github.com/docs-site/vitepress-theme-mist"
},
"copyright": {
"show": true,
"createYear": 2025,
"suffix": "苏木"
}
},
"markdown": {},
"sidebarTrigger": true,
"social": [
{
"icon": "",
"name": "",
"link": ""
},
{
"icon": "",
"name": "",
"link": ""
}
],
"themeName": "vitepress-theme-mist",
"themeEnhance": {
"enabled": true,
"position": "top",
"layoutSwitch": {
"disabled": false,
"defaultMode": "fullWidth",
"disableHelp": false,
"disableAnimation": false,
"defaultDocMaxWidth": 90,
"disableDocMaxWidthHelp": false,
"defaultPageMaxWidth": 95,
"disablePageMaxWidthHelp": false
},
"spotlight": {
"disabled": false,
"defaultStyle": "aside",
"defaultValue": true
},
"themeColor": {}
},
"toComment": {
"enabled": true
},
"vitePlugins": {
"enabled": true,
"docAnalysis": true,
"fileContentLoaderIgnore": [],
"demoOption": {
"str": "mist"
},
"navSidebarOption": {
"path": "sdoc",
"debugInfo": false,
"navOption": {
"maxLevel": 2,
"debugPrint": false,
"saveToFile": false
},
"sideBarOption": {
"type": "object",
"ignoreList": [
"index.md",
"README.md"
],
"initItems": false,
"collapsed": true,
"debugPrint": false,
"saveToFile": false
}
}
},
"windowTransition": true,
"nav": [
{
"text": "开发工具",
"items": [
{
"text": "keil",
"link": "/sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md"
},
{
"text": "STM32Cube",
"link": "/sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md"
},
{
"text": "下载与调试",
"link": "/sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md"
}
]
},
{
"text": "基础篇",
"items": [
{
"text": "概述",
"link": "/sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md"
},
{
"text": "STM32基础",
"link": "/sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md"
},
{
"text": "STM32的启动",
"link": "/sdoc/basic/stm32setup/126b08e788d3105084b556cd.md"
},
{
"text": "STM32的中断",
"link": "/sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md"
},
{
"text": "STM32时钟",
"link": "/sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md"
},
{
"text": "STM32内部FLASH",
"link": "/sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md"
},
{
"text": "STM32的内存",
"link": "/sdoc/basic/stm32memory/126b094142e21f978c1c589e.md"
},
{
"text": "STM32电源管理",
"link": "/sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md"
}
]
},
{
"text": "基本外设篇",
"items": [
{
"text": "GPIO",
"link": "/sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md"
},
{
"text": "UART",
"link": "/sdoc/peripheral/uart/126b08f60e8936153c897e51.md"
},
{
"text": "定时器",
"link": "/sdoc/peripheral/timer/126b08f6a16a27128730debb.md"
},
{
"text": "看门狗",
"link": "/sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md"
},
{
"text": "FSMC",
"link": "/sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md"
},
{
"text": "I2C",
"link": "/sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md"
},
{
"text": "SPI",
"link": "/sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md"
},
{
"text": "DMA",
"link": "/sdoc/peripheral/dma/126b0950fb76332c67477449.md"
},
{
"text": "SDIO",
"link": "/sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md"
},
{
"text": "RTC时钟",
"link": "/sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md"
},
{
"text": "USB",
"link": "/sdoc/peripheral/usb/126b095167923a1447b3ed2c.md"
}
]
},
{
"text": "进阶篇",
"items": [
{
"text": "文件系统",
"link": "/sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md"
},
{
"text": "ESP8266",
"link": "/sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md"
},
{
"text": "OV7725",
"link": "/sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md"
},
{
"text": "显示屏",
"link": "/sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md"
},
{
"text": "FreeRTOS",
"link": "/docs/126b096ee490286163a5b271.md"
}
]
},
{
"text": "通信专题",
"items": [
{
"text": "I2C协议",
"link": "/sdoc/communication/i2c/126b09043eec0234d430a608.md"
},
{
"text": "串口",
"link": "/sdoc/communication/serial-port/126b09044209398a673e2151.md"
},
{
"text": "SPI",
"link": "/sdoc/communication/spi/126b0950dce32a071f087087.md"
},
{
"text": "CAN",
"link": "/sdoc/communication/can/126b0950f33c30cca3fe3d80.md"
}
]
},
{
"text": "功能页",
"items": [
{
"text": "归档页",
"link": "/archives"
},
{
"text": "导航页",
"link": "/Navigation"
}
]
}
],
"logo": "/favicon.svg",
"docFooter": {
"prev": "上一篇",
"next": "下一篇"
},
"outline": {
"label": "页面导航",
"level": [
2,
6
]
},
"socialLinks": [
{
"icon": "github",
"link": "https://github.com/docs-site/scm-docs.git"
}
],
"docAnalysisInfo": {
"fileList": [
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/api-examples.md",
"relativePath": "Examples/api-examples.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/index.md",
"relativePath": "Examples/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/markdown-examples.md",
"relativePath": "Examples/markdown-examples.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV001-keil简介.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV001-keil简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV002-工程创建.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV002-工程创建.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV010-程序与编译.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV010-程序与编译.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV016-Output目录文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV016-Output目录文件.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV040-在线调试.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV040-在线调试.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/index.md",
"relativePath": "sdoc/01-开发工具/01-keil/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/index.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/index.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/index.md",
"relativePath": "sdoc/01-开发工具/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV010-常见存储器.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV010-常见存储器.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/index.md",
"relativePath": "sdoc/10-基础篇/01-概述/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/index.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/index.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md",
"relativePath": "sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/index.md",
"relativePath": "sdoc/10-基础篇/30-STM32的中断/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/index.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/index.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/index.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/index.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/index.md",
"relativePath": "sdoc/10-基础篇/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/index.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/index.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/index.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/index.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/index.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/index.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/index.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/index.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md",
"relativePath": "sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/index.md",
"relativePath": "sdoc/20-基本外设篇/55-RTC时钟/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV001-USB简介.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/LV001-USB简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/index.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/index.md",
"relativePath": "sdoc/20-基本外设篇/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/index.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/index.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/index.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/index.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/index.md",
"relativePath": "sdoc/30-进阶篇/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/index.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV001-串口通信简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV001-串口通信简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV020-RS232简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV020-RS232简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV030-RS485简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV030-RS485简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/index.md",
"relativePath": "sdoc/60-通信专题/10-串口/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/LV001-SPI简介.md",
"relativePath": "sdoc/60-通信专题/30-SPI/LV001-SPI简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/index.md",
"relativePath": "sdoc/60-通信专题/30-SPI/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md",
"relativePath": "sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/index.md",
"relativePath": "sdoc/60-通信专题/40-CAN/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/LV001-通信概述.md",
"relativePath": "sdoc/60-通信专题/LV001-通信概述.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/index.md",
"relativePath": "sdoc/60-通信专题/index.md"
},
{
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/index.md",
"relativePath": "sdoc/index.md"
}
],
"totalFileWords": 432809,
"eachFileWords": [
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/api-examples.md",
"relativePath": "Examples/api-examples.md"
},
"wordCount": 119,
"readingTime": "1m",
"frontmatter": {
"outline": "deep"
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/index.md",
"relativePath": "Examples/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "Examples",
"index": false,
"icon": "laptop-code"
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/markdown-examples.md",
"relativePath": "Examples/markdown-examples.md"
},
"wordCount": 133,
"readingTime": "1m",
"frontmatter": {}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV001-keil简介.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV001-keil简介.md"
},
"wordCount": 3148,
"readingTime": "12.3m",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV002-工程创建.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV002-工程创建.md"
},
"wordCount": 5090,
"readingTime": "21.2m",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV010-程序与编译.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV010-程序与编译.md"
},
"wordCount": 7343,
"readingTime": "28.1m",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md"
},
"wordCount": 1699,
"readingTime": "7.2m",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV016-Output目录文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV016-Output目录文件.md"
},
"wordCount": 9926,
"readingTime": "39.4m",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md"
},
"wordCount": 3876,
"readingTime": "15.7m",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md"
},
"wordCount": 4846,
"readingTime": "18.6m",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md"
},
"wordCount": 5872,
"readingTime": "25.5m",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV040-在线调试.md",
"relativePath": "sdoc/01-开发工具/01-keil/LV040-在线调试.md"
},
"wordCount": 865,
"readingTime": "3.2m",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/index.md",
"relativePath": "sdoc/01-开发工具/01-keil/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "keil",
"date": {},
"permalink": "/sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/01-开发工具/01-keil",
"tdoc": {
"detailDate": {},
"fulluuid": "1c0cdd833c6f4d269b591c021d19c179",
"useduuid": "1c0cdd833"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md"
},
"wordCount": 1557,
"readingTime": "6.1m",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md"
},
"wordCount": 523,
"readingTime": "2.2m",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md"
},
"wordCount": 7821,
"readingTime": "32m",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md"
},
"wordCount": 4447,
"readingTime": "18.3m",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md"
},
"wordCount": 3461,
"readingTime": "15.1m",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md"
},
"wordCount": 6274,
"readingTime": "27.9m",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/index.md",
"relativePath": "sdoc/01-开发工具/02-STM32Cube/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "STM32Cube",
"date": {},
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa588123a43b261847",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/01-开发工具/02-STM32Cube",
"tdoc": {
"detailDate": {},
"fulluuid": "43b26184793c4d0cb3aa0f4fd7a52cc3",
"useduuid": "43b261847"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md"
},
"wordCount": 2465,
"readingTime": "9.5m",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md"
},
"wordCount": 863,
"readingTime": "3.5m",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md"
},
"wordCount": 1663,
"readingTime": "6.5m",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md"
},
"wordCount": 1137,
"readingTime": "4.6m",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md"
},
"wordCount": 1089,
"readingTime": "4.3m",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md"
},
"wordCount": 2302,
"readingTime": "8.7m",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/index.md",
"relativePath": "sdoc/01-开发工具/10-下载与调试/index.md"
},
"wordCount": 12,
"readingTime": "1m",
"frontmatter": {
"title": "下载与调试",
"date": {},
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/01-开发工具/10-下载与调试",
"tdoc": {
"detailDate": {},
"fulluuid": "11433564e2d14b87940cda7a065c7245",
"useduuid": "11433564e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/index.md",
"relativePath": "sdoc/01-开发工具/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "开发工具",
"date": {},
"permalink": "/sdoc/dev-tool/126b08a8b29007f159f1c463",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/01-开发工具",
"tdoc": {
"detailDate": {},
"fulluuid": "159f1c463cf844df87ef1a800e357e2b",
"useduuid": "159f1c463"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md"
},
"wordCount": 3322,
"readingTime": "12.2m",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV010-常见存储器.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV010-常见存储器.md"
},
"wordCount": 5053,
"readingTime": "18.4m",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md"
},
"wordCount": 1388,
"readingTime": "5.5m",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md"
},
"wordCount": 569,
"readingTime": "2.4m",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md"
},
"wordCount": 1812,
"readingTime": "6.6m",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md"
},
"wordCount": 4422,
"readingTime": "16.7m",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md"
},
"wordCount": 3824,
"readingTime": "14m",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md",
"relativePath": "sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md"
},
"wordCount": 3660,
"readingTime": "13.5m",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/index.md",
"relativePath": "sdoc/10-基础篇/01-概述/index.md"
},
"wordCount": 9,
"readingTime": "1m",
"frontmatter": {
"title": "概述",
"date": {},
"permalink": "/sdoc/basic/overview/126b08ba0e6d394d4eb563f9",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/01-概述",
"tdoc": {
"detailDate": {},
"fulluuid": "d4eb563f9b6c43c88cf5f84d6b06a68d",
"useduuid": "d4eb563f9"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md"
},
"wordCount": 5466,
"readingTime": "22.6m",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md"
},
"wordCount": 3793,
"readingTime": "14.4m",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md"
},
"wordCount": 5869,
"readingTime": "21.6m",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md"
},
"wordCount": 11943,
"readingTime": "46.6m",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md"
},
"wordCount": 375,
"readingTime": "1.6m",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md"
},
"wordCount": 1875,
"readingTime": "6.9m",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md"
},
"wordCount": 4902,
"readingTime": "18.3m",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md"
},
"wordCount": 1939,
"readingTime": "7.2m",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/index.md",
"relativePath": "sdoc/10-基础篇/10-STM32基础/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "STM32基础",
"date": {},
"permalink": "/sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/10-STM32基础",
"tdoc": {
"detailDate": {},
"fulluuid": "ef4ddea37f0e43adb291c85bef333f39",
"useduuid": "ef4ddea37"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md"
},
"wordCount": 4233,
"readingTime": "16.2m",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md"
},
"wordCount": 7021,
"readingTime": "25.8m",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md"
},
"wordCount": 5305,
"readingTime": "20m",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/index.md",
"relativePath": "sdoc/10-基础篇/20-STM32的启动/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "STM32的启动",
"date": {},
"permalink": "/sdoc/basic/stm32setup/126b08e788d3105084b556cd",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/20-STM32的启动",
"tdoc": {
"detailDate": {},
"fulluuid": "084b556cdf0e40dca5af9b7ead1b8736",
"useduuid": "084b556cd"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md",
"relativePath": "sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md"
},
"wordCount": 2595,
"readingTime": "10.3m",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/index.md",
"relativePath": "sdoc/10-基础篇/30-STM32的中断/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "STM32的中断",
"date": {},
"permalink": "/sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/30-STM32的中断",
"tdoc": {
"detailDate": {},
"fulluuid": "054f0a4aad2c49b7b1d0cb29f73bf15d",
"useduuid": "054f0a4aa"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md"
},
"wordCount": 4031,
"readingTime": "14.9m",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md"
},
"wordCount": 2731,
"readingTime": "11m",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/index.md",
"relativePath": "sdoc/10-基础篇/40-STM32时钟/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "STM32时钟",
"date": {},
"permalink": "/sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/40-STM32时钟",
"tdoc": {
"detailDate": {},
"fulluuid": "b6c3871dcde442e8b6728118239493f8",
"useduuid": "b6c3871dc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md"
},
"wordCount": 6700,
"readingTime": "25.3m",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md"
},
"wordCount": 3200,
"readingTime": "13.6m",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md"
},
"wordCount": 2352,
"readingTime": "8.4m",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md"
},
"wordCount": 3055,
"readingTime": "12.7m",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/index.md",
"relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "STM32内部FLASH",
"date": {},
"permalink": "/sdoc/basic/stm32flash/126b093451ee0b11abb28aa5",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/50-STM32内部FLASH",
"tdoc": {
"detailDate": {},
"fulluuid": "1abb28aa575f41768b5e5e5c4eb55ad1",
"useduuid": "1abb28aa5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md"
},
"wordCount": 922,
"readingTime": "3.6m",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md"
},
"wordCount": 1411,
"readingTime": "5.4m",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/index.md",
"relativePath": "sdoc/10-基础篇/60-STM32的内存/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "STM32的内存",
"date": {},
"permalink": "/sdoc/basic/stm32memory/126b094142e21f978c1c589e",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/60-STM32的内存",
"tdoc": {
"detailDate": {},
"fulluuid": "78c1c589edb3469d9a8af92640541c20",
"useduuid": "78c1c589e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md"
},
"wordCount": 3994,
"readingTime": "15.7m",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md"
},
"wordCount": 3159,
"readingTime": "12.7m",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/index.md",
"relativePath": "sdoc/10-基础篇/70-STM32电源管理/index.md"
},
"wordCount": 12,
"readingTime": "1m",
"frontmatter": {
"title": "STM32电源管理",
"date": {},
"permalink": "/sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇/70-STM32电源管理",
"tdoc": {
"detailDate": {},
"fulluuid": "9a28ea1f0f3845a58bfeac68e4250208",
"useduuid": "9a28ea1f0"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/index.md",
"relativePath": "sdoc/10-基础篇/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "基础篇",
"date": {},
"permalink": "/sdoc/basic/126b08ba0be902f861c0b265",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/10-基础篇",
"tdoc": {
"detailDate": {},
"fulluuid": "861c0b265b6a42dca0d9abcea5e1d03f",
"useduuid": "861c0b265"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md"
},
"wordCount": 8880,
"readingTime": "34.1m",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md"
},
"wordCount": 5669,
"readingTime": "20.8m",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md"
},
"wordCount": 257,
"readingTime": "1m",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md"
},
"wordCount": 625,
"readingTime": "2.5m",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md"
},
"wordCount": 3016,
"readingTime": "11.2m",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md"
},
"wordCount": 988,
"readingTime": "4.2m",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/index.md",
"relativePath": "sdoc/20-基本外设篇/01-GPIO/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "GPIO",
"date": {},
"permalink": "/sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/01-GPIO",
"tdoc": {
"detailDate": {},
"fulluuid": "7f9711bf1db3401eb1e7e7f93aec4aed",
"useduuid": "7f9711bf1"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md"
},
"wordCount": 2334,
"readingTime": "8.1m",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md"
},
"wordCount": 3179,
"readingTime": "12m",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md"
},
"wordCount": 4235,
"readingTime": "17.3m",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/index.md",
"relativePath": "sdoc/20-基本外设篇/10-UART/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "UART",
"date": {},
"permalink": "/sdoc/peripheral/uart/126b08f60e8936153c897e51",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/10-UART",
"tdoc": {
"detailDate": {},
"fulluuid": "53c897e519bc40c28cf3a12d6b1462bf",
"useduuid": "53c897e51"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md"
},
"wordCount": 2535,
"readingTime": "9.2m",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md"
},
"wordCount": 5274,
"readingTime": "19.4m",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md"
},
"wordCount": 1059,
"readingTime": "4.1m",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md"
},
"wordCount": 1227,
"readingTime": "4.7m",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md"
},
"wordCount": 1691,
"readingTime": "6.1m",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md"
},
"wordCount": 1467,
"readingTime": "5.4m",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md"
},
"wordCount": 1116,
"readingTime": "4m",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md"
},
"wordCount": 1622,
"readingTime": "6.1m",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md"
},
"wordCount": 1441,
"readingTime": "5.6m",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md"
},
"wordCount": 2650,
"readingTime": "10.2m",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md"
},
"wordCount": 1960,
"readingTime": "7.5m",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md"
},
"wordCount": 4404,
"readingTime": "17.8m",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md"
},
"wordCount": 868,
"readingTime": "3.5m",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/index.md",
"relativePath": "sdoc/20-基本外设篇/15-定时器/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "定时器",
"date": {},
"permalink": "/sdoc/peripheral/timer/126b08f6a16a27128730debb",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/15-定时器",
"tdoc": {
"detailDate": {},
"fulluuid": "28730debb0654b249b59588fa37fa6e5",
"useduuid": "28730debb"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md"
},
"wordCount": 5267,
"readingTime": "19.8m",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md"
},
"wordCount": 969,
"readingTime": "4.1m",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/index.md",
"relativePath": "sdoc/20-基本外设篇/20-看门狗/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "看门狗",
"date": {},
"permalink": "/sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/20-看门狗",
"tdoc": {
"detailDate": {},
"fulluuid": "abdc4e3ef97f4086a7f26017507a6a97",
"useduuid": "abdc4e3ef"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md"
},
"wordCount": 2636,
"readingTime": "10m",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md"
},
"wordCount": 6085,
"readingTime": "24m",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md"
},
"wordCount": 2137,
"readingTime": "8.3m",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "FSMC基础",
"date": {},
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
"tdoc": {
"detailDate": {},
"fulluuid": "d1fe11f31c3347a2be9288e7705b3e2e",
"useduuid": "d1fe11f31"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md"
},
"wordCount": 246,
"readingTime": "1m",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md"
},
"wordCount": 452,
"readingTime": "1.8m",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md"
},
"wordCount": 2046,
"readingTime": "8.1m",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md"
},
"wordCount": 4945,
"readingTime": "20.9m",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "外部SRAM",
"date": {},
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248c59366360c72955",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
"tdoc": {
"detailDate": {},
"fulluuid": "360c7295571642c0bb65a4fa32d8bf54",
"useduuid": "360c72955"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/index.md",
"relativePath": "sdoc/20-基本外设篇/25-FSMC/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "FSMC",
"date": {},
"permalink": "/sdoc/peripheral/fsmc/126b09248c2122169ae2fda2",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/25-FSMC",
"tdoc": {
"detailDate": {},
"fulluuid": "69ae2fda2bcb44fa90fa3297c99541fc",
"useduuid": "69ae2fda2"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md"
},
"wordCount": 3324,
"readingTime": "12.8m",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md"
},
"wordCount": 747,
"readingTime": "3.3m",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md"
},
"wordCount": 2000,
"readingTime": "8.7m",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/index.md",
"relativePath": "sdoc/20-基本外设篇/30-I2C/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "I2C",
"date": {},
"permalink": "/sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/30-I2C",
"tdoc": {
"detailDate": {},
"fulluuid": "7b3b3eff937f4fa1bc99114f9f726d4b",
"useduuid": "7b3b3eff9"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md"
},
"wordCount": 2919,
"readingTime": "11.4m",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md"
},
"wordCount": 1992,
"readingTime": "8.3m",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md"
},
"wordCount": 3847,
"readingTime": "15.8m",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/index.md",
"relativePath": "sdoc/20-基本外设篇/35-SPI/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "SPI",
"date": {},
"permalink": "/sdoc/peripheral/spi/126b0950f46d2b67951e2c74",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/35-SPI",
"tdoc": {
"detailDate": {},
"fulluuid": "7951e2c74bbb412f871c21c97dd11cce",
"useduuid": "7951e2c74"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md"
},
"wordCount": 4155,
"readingTime": "15.5m",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md"
},
"wordCount": 2001,
"readingTime": "8m",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/index.md",
"relativePath": "sdoc/20-基本外设篇/40-DMA/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "DMA",
"date": {},
"permalink": "/sdoc/peripheral/dma/126b0950fb76332c67477449",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/40-DMA",
"tdoc": {
"detailDate": {},
"fulluuid": "c6747744928e4d42982cdd3eab77c128",
"useduuid": "c67477449"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md"
},
"wordCount": 3570,
"readingTime": "14.4m",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md"
},
"wordCount": 7038,
"readingTime": "28.9m",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md"
},
"wordCount": 5457,
"readingTime": "21.2m",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md"
},
"wordCount": 4111,
"readingTime": "17.4m",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/index.md",
"relativePath": "sdoc/20-基本外设篇/50-SDIO/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "SDIO",
"date": {},
"permalink": "/sdoc/peripheral/sdio/126b0950fdc523d3bcab509d",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/50-SDIO",
"tdoc": {
"detailDate": {},
"fulluuid": "3bcab509d82341eba54afcd45f4e9133",
"useduuid": "3bcab509d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md",
"relativePath": "sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md"
},
"wordCount": 4862,
"readingTime": "18.7m",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/index.md",
"relativePath": "sdoc/20-基本外设篇/55-RTC时钟/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "RTC时钟",
"date": {},
"permalink": "/sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/55-RTC时钟",
"tdoc": {
"detailDate": {},
"fulluuid": "6b6fcf250ef34e2fb8b9f536531e098b",
"useduuid": "6b6fcf250"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV001-USB简介.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/LV001-USB简介.md"
},
"wordCount": 2486,
"readingTime": "9.2m",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md"
},
"wordCount": 1904,
"readingTime": "7.3m",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/index.md",
"relativePath": "sdoc/20-基本外设篇/60-USB/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "USB",
"date": {},
"permalink": "/sdoc/peripheral/usb/126b095167923a1447b3ed2c",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇/60-USB",
"tdoc": {
"detailDate": {},
"fulluuid": "447b3ed2ca13424ea9206821ce3ccd80",
"useduuid": "447b3ed2c"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/index.md",
"relativePath": "sdoc/20-基本外设篇/index.md"
},
"wordCount": 12,
"readingTime": "1m",
"frontmatter": {
"title": "基本外设篇",
"date": {},
"permalink": "/sdoc/peripherals/126b08ba0bf0218c6b2c4985",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/20-基本外设篇",
"tdoc": {
"detailDate": {},
"fulluuid": "c6b2c49855c24262806d8a83d515c79e",
"useduuid": "c6b2c4985"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md"
},
"wordCount": 1602,
"readingTime": "5.9m",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md"
},
"wordCount": 5567,
"readingTime": "22.6m",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md"
},
"wordCount": 4149,
"readingTime": "17.8m",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md"
},
"wordCount": 2226,
"readingTime": "10.3m",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md"
},
"wordCount": 443,
"readingTime": "2m",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/index.md",
"relativePath": "sdoc/30-进阶篇/01-文件系统/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "文件系统",
"date": {},
"permalink": "/sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/01-文件系统",
"tdoc": {
"detailDate": {},
"fulluuid": "157cc07c616b492a9d5f73ec4a739bbd",
"useduuid": "157cc07c6"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md"
},
"wordCount": 2444,
"readingTime": "10m",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md"
},
"wordCount": 5206,
"readingTime": "23.7m",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md"
},
"wordCount": 3571,
"readingTime": "13.8m",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md"
},
"wordCount": 1473,
"readingTime": "5.8m",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/index.md",
"relativePath": "sdoc/30-进阶篇/02-ESP8266/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "ESP8266",
"date": {},
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/02-ESP8266",
"tdoc": {
"detailDate": {},
"fulluuid": "37e2b0091b834c029cb64e44d50ac973",
"useduuid": "37e2b0091"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md"
},
"wordCount": 656,
"readingTime": "2.6m",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md"
},
"wordCount": 1038,
"readingTime": "3.8m",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md"
},
"wordCount": 2954,
"readingTime": "11.1m",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/index.md",
"relativePath": "sdoc/30-进阶篇/03-OV7725/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "OV7725",
"date": {},
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/03-OV7725",
"tdoc": {
"detailDate": {},
"fulluuid": "d46ca7dbfa264fd69fea19958049cbac",
"useduuid": "d46ca7dbf"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md"
},
"wordCount": 3033,
"readingTime": "12.2m",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md"
},
"wordCount": 1975,
"readingTime": "8.7m",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "OLED",
"date": {},
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
"tdoc": {
"detailDate": {},
"fulluuid": "34becda6b9404c708c78adb8d095fd35",
"useduuid": "34becda6b"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md"
},
"wordCount": 5119,
"readingTime": "20m",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md"
},
"wordCount": 4461,
"readingTime": "16.5m",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md"
},
"wordCount": 1428,
"readingTime": "5.9m",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md"
},
"wordCount": 5985,
"readingTime": "25m",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md"
},
"wordCount": 3655,
"readingTime": "14m",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md"
},
"wordCount": 9443,
"readingTime": "41.7m",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md"
},
"wordCount": 8631,
"readingTime": "32.8m",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md"
},
"wordCount": 8489,
"readingTime": "32.9m",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md"
},
"wordCount": 2469,
"readingTime": "11.2m",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "LCD",
"date": {},
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
"tdoc": {
"detailDate": {},
"fulluuid": "db818e12a8494edaa70aee62d83a762a",
"useduuid": "db818e12a"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/index.md",
"relativePath": "sdoc/30-进阶篇/04-显示屏/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "显示屏",
"date": {},
"permalink": "/sdoc/advanced-chapter/display/126b09516d1d204fc8501804",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/04-显示屏",
"tdoc": {
"detailDate": {},
"fulluuid": "fc8501804f684f2ab512b2ea7ec7d696",
"useduuid": "fc8501804"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md"
},
"wordCount": 3772,
"readingTime": "13.5m",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "FreeRTOS简介",
"date": {},
"permalink": "/docs/126b096ee4bd15f7d94c92d0",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
"tdoc": {
"detailDate": {},
"fulluuid": "7d94c92d0b5b4e879dd31eeca6ac7ba1",
"useduuid": "7d94c92d0"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/index.md",
"relativePath": "sdoc/30-进阶篇/90-FreeRTOS/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "FreeRTOS",
"date": {},
"permalink": "/docs/126b096ee490286163a5b271",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇/90-FreeRTOS",
"tdoc": {
"detailDate": {},
"fulluuid": "163a5b271dee4fecab80d711b1426cf5",
"useduuid": "163a5b271"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/index.md",
"relativePath": "sdoc/30-进阶篇/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "进阶篇",
"date": {},
"permalink": "/sdoc/advanced-chapter/126b095103e933d0da8853e8",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/30-进阶篇",
"tdoc": {
"detailDate": {},
"fulluuid": "0da8853e8a9643dd8dfe55a10854bb82",
"useduuid": "0da8853e8"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md"
},
"wordCount": 6512,
"readingTime": "24.1m",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md"
},
"wordCount": 600,
"readingTime": "2.2m",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/index.md",
"relativePath": "sdoc/60-通信专题/01-I2C协议/index.md"
},
"wordCount": 10,
"readingTime": "1m",
"frontmatter": {
"title": "I2C协议",
"date": {},
"permalink": "/sdoc/communication/i2c/126b09043eec0234d430a608",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/60-通信专题/01-I2C协议",
"tdoc": {
"detailDate": {},
"fulluuid": "4d430a60859c4c8db0b119b963b97f73",
"useduuid": "4d430a608"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV001-串口通信简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV001-串口通信简介.md"
},
"wordCount": 2509,
"readingTime": "9.5m",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV020-RS232简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV020-RS232简介.md"
},
"wordCount": 700,
"readingTime": "2.7m",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV030-RS485简介.md",
"relativePath": "sdoc/60-通信专题/10-串口/LV030-RS485简介.md"
},
"wordCount": 2665,
"readingTime": "10m",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/index.md",
"relativePath": "sdoc/60-通信专题/10-串口/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "UART",
"date": {},
"permalink": "/sdoc/communication/serial-port/126b09044209398a673e2151",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/60-通信专题/10-串口",
"tdoc": {
"detailDate": {},
"fulluuid": "a673e2151ed34718be9dccfe2b5e234c",
"useduuid": "a673e2151"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/LV001-SPI简介.md",
"relativePath": "sdoc/60-通信专题/30-SPI/LV001-SPI简介.md"
},
"wordCount": 4214,
"readingTime": "16.1m",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/index.md",
"relativePath": "sdoc/60-通信专题/30-SPI/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "SPI",
"date": {},
"permalink": "/sdoc/communication/spi/126b0950dce32a071f087087",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/60-通信专题/30-SPI",
"tdoc": {
"detailDate": {},
"fulluuid": "71f087087eef4d75b27e4bb9dd21fceb",
"useduuid": "71f087087"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md",
"relativePath": "sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md"
},
"wordCount": 3989,
"readingTime": "14.8m",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/index.md",
"relativePath": "sdoc/60-通信专题/40-CAN/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "CAN",
"date": {},
"permalink": "/sdoc/communication/can/126b0950f33c30cca3fe3d80",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/60-通信专题/40-CAN",
"tdoc": {
"detailDate": {},
"fulluuid": "ca3fe3d80a78403389da5e3a57a70386",
"useduuid": "ca3fe3d80"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/LV001-通信概述.md",
"relativePath": "sdoc/60-通信专题/LV001-通信概述.md"
},
"wordCount": 2294,
"readingTime": "8.3m",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/index.md",
"relativePath": "sdoc/60-通信专题/index.md"
},
"wordCount": 11,
"readingTime": "1m",
"frontmatter": {
"title": "通信专题",
"date": {},
"permalink": "/sdoc/communication/126b09043d6f181654856443",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc/60-通信专题",
"tdoc": {
"detailDate": {},
"fulluuid": "654856443399493a8336ebadf4d12a42",
"useduuid": 654856443
}
}
},
{
"fileInfo": {
"filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/index.md",
"relativePath": "sdoc/index.md"
},
"wordCount": 8,
"readingTime": "1m",
"frontmatter": {
"title": "sdoc",
"date": {},
"permalink": "/sdoc/126b08a8af2414bbd46eede1",
"icon": "laptop-code",
"layout": "page",
"catalogue": true,
"path": "sdoc",
"tdoc": {
"detailDate": {},
"fulluuid": "bd46eede19344c4db15a1d4f2de1abd3",
"useduuid": "bd46eede1"
}
}
}
],
"lastCommitTime": "2025-10-10 22:30:04"
},
"demo": "hello world!mist",
"catalogIndex": {
"arr": {
"create": "vitepress-plugin-permalink"
},
"map": {
"sdoc/01-开发工具/01-keil/index.md": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md",
"sdoc/01-开发工具/02-STM32Cube/index.md": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md",
"sdoc/01-开发工具/10-下载与调试/index.md": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md",
"sdoc/01-开发工具/index.md": "sdoc/dev-tool/126b08a8b29007f159f1c463.md",
"sdoc/10-基础篇/01-概述/index.md": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md",
"sdoc/10-基础篇/10-STM32基础/index.md": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md",
"sdoc/10-基础篇/20-STM32的启动/index.md": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.md",
"sdoc/10-基础篇/30-STM32的中断/index.md": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md",
"sdoc/10-基础篇/40-STM32时钟/index.md": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md",
"sdoc/10-基础篇/50-STM32内部FLASH/index.md": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md",
"sdoc/10-基础篇/60-STM32的内存/index.md": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.md",
"sdoc/10-基础篇/70-STM32电源管理/index.md": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md",
"sdoc/10-基础篇/index.md": "sdoc/basic/126b08ba0be902f861c0b265.md",
"sdoc/20-基本外设篇/01-GPIO/index.md": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md",
"sdoc/20-基本外设篇/10-UART/index.md": "sdoc/peripheral/uart/126b08f60e8936153c897e51.md",
"sdoc/20-基本外设篇/15-定时器/index.md": "sdoc/peripheral/timer/126b08f6a16a27128730debb.md",
"sdoc/20-基本外设篇/20-看门狗/index.md": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md",
"sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.md",
"sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.md",
"sdoc/20-基本外设篇/25-FSMC/index.md": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md",
"sdoc/20-基本外设篇/30-I2C/index.md": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md",
"sdoc/20-基本外设篇/35-SPI/index.md": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md",
"sdoc/20-基本外设篇/40-DMA/index.md": "sdoc/peripheral/dma/126b0950fb76332c67477449.md",
"sdoc/20-基本外设篇/50-SDIO/index.md": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md",
"sdoc/20-基本外设篇/55-RTC时钟/index.md": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md",
"sdoc/20-基本外设篇/60-USB/index.md": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.md",
"sdoc/20-基本外设篇/index.md": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.md",
"sdoc/30-进阶篇/01-文件系统/index.md": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md",
"sdoc/30-进阶篇/02-ESP8266/index.md": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md",
"sdoc/30-进阶篇/03-OV7725/index.md": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md",
"sdoc/30-进阶篇/04-显示屏/01-OLED/index.md": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.md",
"sdoc/30-进阶篇/04-显示屏/02-LCD/index.md": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.md",
"sdoc/30-进阶篇/04-显示屏/index.md": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md",
"sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md": "docs/126b096ee4bd15f7d94c92d0.md",
"sdoc/30-进阶篇/90-FreeRTOS/index.md": "docs/126b096ee490286163a5b271.md",
"sdoc/30-进阶篇/index.md": "sdoc/advanced-chapter/126b095103e933d0da8853e8.md",
"sdoc/60-通信专题/01-I2C协议/index.md": "sdoc/communication/i2c/126b09043eec0234d430a608.md",
"sdoc/60-通信专题/10-串口/index.md": "sdoc/communication/serial-port/126b09044209398a673e2151.md",
"sdoc/60-通信专题/30-SPI/index.md": "sdoc/communication/spi/126b0950dce32a071f087087.md",
"sdoc/60-通信专题/40-CAN/index.md": "sdoc/communication/can/126b0950f33c30cca3fe3d80.md",
"sdoc/60-通信专题/index.md": "sdoc/communication/126b09043d6f181654856443.md",
"sdoc/index.md": "sdoc/126b08a8af2414bbd46eede1.md"
},
"inv": {
"sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md": "sdoc/01-开发工具/01-keil/index.md",
"sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md": "sdoc/01-开发工具/02-STM32Cube/index.md",
"sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md": "sdoc/01-开发工具/10-下载与调试/index.md",
"sdoc/dev-tool/126b08a8b29007f159f1c463.md": "sdoc/01-开发工具/index.md",
"sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md": "sdoc/10-基础篇/01-概述/index.md",
"sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md": "sdoc/10-基础篇/10-STM32基础/index.md",
"sdoc/basic/stm32setup/126b08e788d3105084b556cd.md": "sdoc/10-基础篇/20-STM32的启动/index.md",
"sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md": "sdoc/10-基础篇/30-STM32的中断/index.md",
"sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md": "sdoc/10-基础篇/40-STM32时钟/index.md",
"sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md": "sdoc/10-基础篇/50-STM32内部FLASH/index.md",
"sdoc/basic/stm32memory/126b094142e21f978c1c589e.md": "sdoc/10-基础篇/60-STM32的内存/index.md",
"sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md": "sdoc/10-基础篇/70-STM32电源管理/index.md",
"sdoc/basic/126b08ba0be902f861c0b265.md": "sdoc/10-基础篇/index.md",
"sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md": "sdoc/20-基本外设篇/01-GPIO/index.md",
"sdoc/peripheral/uart/126b08f60e8936153c897e51.md": "sdoc/20-基本外设篇/10-UART/index.md",
"sdoc/peripheral/timer/126b08f6a16a27128730debb.md": "sdoc/20-基本外设篇/15-定时器/index.md",
"sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md": "sdoc/20-基本外设篇/20-看门狗/index.md",
"sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.md": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
"sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.md": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
"sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md": "sdoc/20-基本外设篇/25-FSMC/index.md",
"sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md": "sdoc/20-基本外设篇/30-I2C/index.md",
"sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md": "sdoc/20-基本外设篇/35-SPI/index.md",
"sdoc/peripheral/dma/126b0950fb76332c67477449.md": "sdoc/20-基本外设篇/40-DMA/index.md",
"sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md": "sdoc/20-基本外设篇/50-SDIO/index.md",
"sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md": "sdoc/20-基本外设篇/55-RTC时钟/index.md",
"sdoc/peripheral/usb/126b095167923a1447b3ed2c.md": "sdoc/20-基本外设篇/60-USB/index.md",
"sdoc/peripherals/126b08ba0bf0218c6b2c4985.md": "sdoc/20-基本外设篇/index.md",
"sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md": "sdoc/30-进阶篇/01-文件系统/index.md",
"sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md": "sdoc/30-进阶篇/02-ESP8266/index.md",
"sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md": "sdoc/30-进阶篇/03-OV7725/index.md",
"sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.md": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
"sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.md": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
"sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md": "sdoc/30-进阶篇/04-显示屏/index.md",
"docs/126b096ee4bd15f7d94c92d0.md": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
"docs/126b096ee490286163a5b271.md": "sdoc/30-进阶篇/90-FreeRTOS/index.md",
"sdoc/advanced-chapter/126b095103e933d0da8853e8.md": "sdoc/30-进阶篇/index.md",
"sdoc/communication/i2c/126b09043eec0234d430a608.md": "sdoc/60-通信专题/01-I2C协议/index.md",
"sdoc/communication/serial-port/126b09044209398a673e2151.md": "sdoc/60-通信专题/10-串口/index.md",
"sdoc/communication/spi/126b0950dce32a071f087087.md": "sdoc/60-通信专题/30-SPI/index.md",
"sdoc/communication/can/126b0950f33c30cca3fe3d80.md": "sdoc/60-通信专题/40-CAN/index.md",
"sdoc/communication/126b09043d6f181654856443.md": "sdoc/60-通信专题/index.md",
"sdoc/126b08a8af2414bbd46eede1.md": "sdoc/index.md"
}
},
"catalogues": {
"arr": [
{
"filePath": "sdoc/01-开发工具/01-keil/index",
"path": "sdoc/01-开发工具/01-keil",
"catalogues": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
]
},
{
"filePath": "sdoc/01-开发工具/02-STM32Cube/index",
"path": "sdoc/01-开发工具/02-STM32Cube",
"catalogues": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
]
},
{
"filePath": "sdoc/01-开发工具/10-下载与调试/index",
"path": "sdoc/01-开发工具/10-下载与调试",
"catalogues": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
]
},
{
"filePath": "sdoc/01-开发工具/index",
"path": "sdoc/01-开发工具",
"catalogues": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/10-基础篇/01-概述/index",
"path": "sdoc/10-基础篇/01-概述",
"catalogues": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/10-STM32基础/index",
"path": "sdoc/10-基础篇/10-STM32基础",
"catalogues": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/20-STM32的启动/index",
"path": "sdoc/10-基础篇/20-STM32的启动",
"catalogues": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/30-STM32的中断/index",
"path": "sdoc/10-基础篇/30-STM32的中断",
"catalogues": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/40-STM32时钟/index",
"path": "sdoc/10-基础篇/40-STM32时钟",
"catalogues": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/50-STM32内部FLASH/index",
"path": "sdoc/10-基础篇/50-STM32内部FLASH",
"catalogues": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/60-STM32的内存/index",
"path": "sdoc/10-基础篇/60-STM32的内存",
"catalogues": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/70-STM32电源管理/index",
"path": "sdoc/10-基础篇/70-STM32电源管理",
"catalogues": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
]
},
{
"filePath": "sdoc/10-基础篇/index",
"path": "sdoc/10-基础篇",
"catalogues": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/01-GPIO/index",
"path": "sdoc/20-基本外设篇/01-GPIO",
"catalogues": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/10-UART/index",
"path": "sdoc/20-基本外设篇/10-UART",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/15-定时器/index",
"path": "sdoc/20-基本外设篇/15-定时器",
"catalogues": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/20-看门狗/index",
"path": "sdoc/20-基本外设篇/20-看门狗",
"catalogues": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index",
"path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
"catalogues": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index",
"path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
"catalogues": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/25-FSMC/index",
"path": "sdoc/20-基本外设篇/25-FSMC",
"catalogues": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/30-I2C/index",
"path": "sdoc/20-基本外设篇/30-I2C",
"catalogues": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/35-SPI/index",
"path": "sdoc/20-基本外设篇/35-SPI",
"catalogues": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/40-DMA/index",
"path": "sdoc/20-基本外设篇/40-DMA",
"catalogues": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/50-SDIO/index",
"path": "sdoc/20-基本外设篇/50-SDIO",
"catalogues": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/55-RTC时钟/index",
"path": "sdoc/20-基本外设篇/55-RTC时钟",
"catalogues": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/60-USB/index",
"path": "sdoc/20-基本外设篇/60-USB",
"catalogues": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
]
},
{
"filePath": "sdoc/20-基本外设篇/index",
"path": "sdoc/20-基本外设篇",
"catalogues": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/30-进阶篇/01-文件系统/index",
"path": "sdoc/30-进阶篇/01-文件系统",
"catalogues": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/02-ESP8266/index",
"path": "sdoc/30-进阶篇/02-ESP8266",
"catalogues": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/03-OV7725/index",
"path": "sdoc/30-进阶篇/03-OV7725",
"catalogues": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index",
"path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
"catalogues": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index",
"path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
"catalogues": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/04-显示屏/index",
"path": "sdoc/30-进阶篇/04-显示屏",
"catalogues": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index",
"path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
"catalogues": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
]
},
{
"filePath": "sdoc/30-进阶篇/90-FreeRTOS/index",
"path": "sdoc/30-进阶篇/90-FreeRTOS",
"catalogues": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/30-进阶篇/index",
"path": "sdoc/30-进阶篇",
"catalogues": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
]
},
{
"filePath": "sdoc/60-通信专题/01-I2C协议/index",
"path": "sdoc/60-通信专题/01-I2C协议",
"catalogues": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
]
},
{
"filePath": "sdoc/60-通信专题/10-串口/index",
"path": "sdoc/60-通信专题/10-串口",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
]
},
{
"filePath": "sdoc/60-通信专题/30-SPI/index",
"path": "sdoc/60-通信专题/30-SPI",
"catalogues": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
]
},
{
"filePath": "sdoc/60-通信专题/40-CAN/index",
"path": "sdoc/60-通信专题/40-CAN",
"catalogues": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
]
},
{
"filePath": "sdoc/60-通信专题/index",
"path": "sdoc/60-通信专题",
"catalogues": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
]
},
{
"filePath": "sdoc/index",
"path": "sdoc",
"catalogues": [
{
"title": "01-开发工具",
"children": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "10-基础篇",
"children": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "20-基本外设篇",
"children": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-进阶篇",
"children": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "60-通信专题",
"children": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
],
"frontmatter": {}
}
]
}
],
"map": {
"sdoc/01-开发工具/01-keil/index": {
"url": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.html",
"path": "sdoc/01-开发工具/01-keil",
"catalogues": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
]
},
"sdoc/01-开发工具/02-STM32Cube/index": {
"url": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.html",
"path": "sdoc/01-开发工具/02-STM32Cube",
"catalogues": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
]
},
"sdoc/01-开发工具/10-下载与调试/index": {
"url": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.html",
"path": "sdoc/01-开发工具/10-下载与调试",
"catalogues": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
]
},
"sdoc/01-开发工具/index": {
"url": "sdoc/dev-tool/126b08a8b29007f159f1c463.html",
"path": "sdoc/01-开发工具",
"catalogues": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/10-基础篇/01-概述/index": {
"url": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.html",
"path": "sdoc/10-基础篇/01-概述",
"catalogues": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
]
},
"sdoc/10-基础篇/10-STM32基础/index": {
"url": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.html",
"path": "sdoc/10-基础篇/10-STM32基础",
"catalogues": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
]
},
"sdoc/10-基础篇/20-STM32的启动/index": {
"url": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.html",
"path": "sdoc/10-基础篇/20-STM32的启动",
"catalogues": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
]
},
"sdoc/10-基础篇/30-STM32的中断/index": {
"url": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.html",
"path": "sdoc/10-基础篇/30-STM32的中断",
"catalogues": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
]
},
"sdoc/10-基础篇/40-STM32时钟/index": {
"url": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.html",
"path": "sdoc/10-基础篇/40-STM32时钟",
"catalogues": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
]
},
"sdoc/10-基础篇/50-STM32内部FLASH/index": {
"url": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.html",
"path": "sdoc/10-基础篇/50-STM32内部FLASH",
"catalogues": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
]
},
"sdoc/10-基础篇/60-STM32的内存/index": {
"url": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.html",
"path": "sdoc/10-基础篇/60-STM32的内存",
"catalogues": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
]
},
"sdoc/10-基础篇/70-STM32电源管理/index": {
"url": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.html",
"path": "sdoc/10-基础篇/70-STM32电源管理",
"catalogues": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
]
},
"sdoc/10-基础篇/index": {
"url": "sdoc/basic/126b08ba0be902f861c0b265.html",
"path": "sdoc/10-基础篇",
"catalogues": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/20-基本外设篇/01-GPIO/index": {
"url": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.html",
"path": "sdoc/20-基本外设篇/01-GPIO",
"catalogues": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
]
},
"sdoc/20-基本外设篇/10-UART/index": {
"url": "sdoc/peripheral/uart/126b08f60e8936153c897e51.html",
"path": "sdoc/20-基本外设篇/10-UART",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
]
},
"sdoc/20-基本外设篇/15-定时器/index": {
"url": "sdoc/peripheral/timer/126b08f6a16a27128730debb.html",
"path": "sdoc/20-基本外设篇/15-定时器",
"catalogues": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
]
},
"sdoc/20-基本外设篇/20-看门狗/index": {
"url": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.html",
"path": "sdoc/20-基本外设篇/20-看门狗",
"catalogues": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index": {
"url": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.html",
"path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
"catalogues": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index": {
"url": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.html",
"path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
"catalogues": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC/index": {
"url": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.html",
"path": "sdoc/20-基本外设篇/25-FSMC",
"catalogues": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/20-基本外设篇/30-I2C/index": {
"url": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.html",
"path": "sdoc/20-基本外设篇/30-I2C",
"catalogues": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
]
},
"sdoc/20-基本外设篇/35-SPI/index": {
"url": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.html",
"path": "sdoc/20-基本外设篇/35-SPI",
"catalogues": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
]
},
"sdoc/20-基本外设篇/40-DMA/index": {
"url": "sdoc/peripheral/dma/126b0950fb76332c67477449.html",
"path": "sdoc/20-基本外设篇/40-DMA",
"catalogues": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
]
},
"sdoc/20-基本外设篇/50-SDIO/index": {
"url": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.html",
"path": "sdoc/20-基本外设篇/50-SDIO",
"catalogues": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
]
},
"sdoc/20-基本外设篇/55-RTC时钟/index": {
"url": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.html",
"path": "sdoc/20-基本外设篇/55-RTC时钟",
"catalogues": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
]
},
"sdoc/20-基本外设篇/60-USB/index": {
"url": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.html",
"path": "sdoc/20-基本外设篇/60-USB",
"catalogues": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
]
},
"sdoc/20-基本外设篇/index": {
"url": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.html",
"path": "sdoc/20-基本外设篇",
"catalogues": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇/01-文件系统/index": {
"url": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.html",
"path": "sdoc/30-进阶篇/01-文件系统",
"catalogues": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
]
},
"sdoc/30-进阶篇/02-ESP8266/index": {
"url": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.html",
"path": "sdoc/30-进阶篇/02-ESP8266",
"catalogues": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
]
},
"sdoc/30-进阶篇/03-OV7725/index": {
"url": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.html",
"path": "sdoc/30-进阶篇/03-OV7725",
"catalogues": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏/01-OLED/index": {
"url": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.html",
"path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
"catalogues": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏/02-LCD/index": {
"url": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.html",
"path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
"catalogues": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏/index": {
"url": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.html",
"path": "sdoc/30-进阶篇/04-显示屏",
"catalogues": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index": {
"url": "docs/126b096ee4bd15f7d94c92d0.html",
"path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
"catalogues": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
]
},
"sdoc/30-进阶篇/90-FreeRTOS/index": {
"url": "docs/126b096ee490286163a5b271.html",
"path": "sdoc/30-进阶篇/90-FreeRTOS",
"catalogues": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇/index": {
"url": "sdoc/advanced-chapter/126b095103e933d0da8853e8.html",
"path": "sdoc/30-进阶篇",
"catalogues": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
]
},
"sdoc/60-通信专题/01-I2C协议/index": {
"url": "sdoc/communication/i2c/126b09043eec0234d430a608.html",
"path": "sdoc/60-通信专题/01-I2C协议",
"catalogues": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
]
},
"sdoc/60-通信专题/10-串口/index": {
"url": "sdoc/communication/serial-port/126b09044209398a673e2151.html",
"path": "sdoc/60-通信专题/10-串口",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
]
},
"sdoc/60-通信专题/30-SPI/index": {
"url": "sdoc/communication/spi/126b0950dce32a071f087087.html",
"path": "sdoc/60-通信专题/30-SPI",
"catalogues": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
]
},
"sdoc/60-通信专题/40-CAN/index": {
"url": "sdoc/communication/can/126b0950f33c30cca3fe3d80.html",
"path": "sdoc/60-通信专题/40-CAN",
"catalogues": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
]
},
"sdoc/60-通信专题/index": {
"url": "sdoc/communication/126b09043d6f181654856443.html",
"path": "sdoc/60-通信专题",
"catalogues": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
]
},
"sdoc/index": {
"url": "sdoc/126b08a8af2414bbd46eede1.html",
"path": "sdoc",
"catalogues": [
{
"title": "01-开发工具",
"children": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "10-基础篇",
"children": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "20-基本外设篇",
"children": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-进阶篇",
"children": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "60-通信专题",
"children": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
],
"frontmatter": {}
}
]
}
},
"inv": {
"sdoc/01-开发工具/01-keil": {
"url": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.html",
"filePath": "sdoc/01-开发工具/01-keil/index",
"catalogues": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
]
},
"sdoc/01-开发工具/02-STM32Cube": {
"url": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.html",
"filePath": "sdoc/01-开发工具/02-STM32Cube/index",
"catalogues": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
]
},
"sdoc/01-开发工具/10-下载与调试": {
"url": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.html",
"filePath": "sdoc/01-开发工具/10-下载与调试/index",
"catalogues": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
]
},
"sdoc/01-开发工具": {
"url": "sdoc/dev-tool/126b08a8b29007f159f1c463.html",
"filePath": "sdoc/01-开发工具/index",
"catalogues": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/10-基础篇/01-概述": {
"url": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.html",
"filePath": "sdoc/10-基础篇/01-概述/index",
"catalogues": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
]
},
"sdoc/10-基础篇/10-STM32基础": {
"url": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.html",
"filePath": "sdoc/10-基础篇/10-STM32基础/index",
"catalogues": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
]
},
"sdoc/10-基础篇/20-STM32的启动": {
"url": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.html",
"filePath": "sdoc/10-基础篇/20-STM32的启动/index",
"catalogues": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
]
},
"sdoc/10-基础篇/30-STM32的中断": {
"url": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.html",
"filePath": "sdoc/10-基础篇/30-STM32的中断/index",
"catalogues": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
]
},
"sdoc/10-基础篇/40-STM32时钟": {
"url": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.html",
"filePath": "sdoc/10-基础篇/40-STM32时钟/index",
"catalogues": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
]
},
"sdoc/10-基础篇/50-STM32内部FLASH": {
"url": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.html",
"filePath": "sdoc/10-基础篇/50-STM32内部FLASH/index",
"catalogues": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
]
},
"sdoc/10-基础篇/60-STM32的内存": {
"url": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.html",
"filePath": "sdoc/10-基础篇/60-STM32的内存/index",
"catalogues": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
]
},
"sdoc/10-基础篇/70-STM32电源管理": {
"url": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.html",
"filePath": "sdoc/10-基础篇/70-STM32电源管理/index",
"catalogues": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
]
},
"sdoc/10-基础篇": {
"url": "sdoc/basic/126b08ba0be902f861c0b265.html",
"filePath": "sdoc/10-基础篇/index",
"catalogues": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/20-基本外设篇/01-GPIO": {
"url": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.html",
"filePath": "sdoc/20-基本外设篇/01-GPIO/index",
"catalogues": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
]
},
"sdoc/20-基本外设篇/10-UART": {
"url": "sdoc/peripheral/uart/126b08f60e8936153c897e51.html",
"filePath": "sdoc/20-基本外设篇/10-UART/index",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
]
},
"sdoc/20-基本外设篇/15-定时器": {
"url": "sdoc/peripheral/timer/126b08f6a16a27128730debb.html",
"filePath": "sdoc/20-基本外设篇/15-定时器/index",
"catalogues": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
]
},
"sdoc/20-基本外设篇/20-看门狗": {
"url": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.html",
"filePath": "sdoc/20-基本外设篇/20-看门狗/index",
"catalogues": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC/01-FSMC基础": {
"url": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.html",
"filePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index",
"catalogues": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC/05-外部SRAM": {
"url": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.html",
"filePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index",
"catalogues": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
]
},
"sdoc/20-基本外设篇/25-FSMC": {
"url": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.html",
"filePath": "sdoc/20-基本外设篇/25-FSMC/index",
"catalogues": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/20-基本外设篇/30-I2C": {
"url": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.html",
"filePath": "sdoc/20-基本外设篇/30-I2C/index",
"catalogues": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
]
},
"sdoc/20-基本外设篇/35-SPI": {
"url": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.html",
"filePath": "sdoc/20-基本外设篇/35-SPI/index",
"catalogues": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
]
},
"sdoc/20-基本外设篇/40-DMA": {
"url": "sdoc/peripheral/dma/126b0950fb76332c67477449.html",
"filePath": "sdoc/20-基本外设篇/40-DMA/index",
"catalogues": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
]
},
"sdoc/20-基本外设篇/50-SDIO": {
"url": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.html",
"filePath": "sdoc/20-基本外设篇/50-SDIO/index",
"catalogues": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
]
},
"sdoc/20-基本外设篇/55-RTC时钟": {
"url": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.html",
"filePath": "sdoc/20-基本外设篇/55-RTC时钟/index",
"catalogues": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
]
},
"sdoc/20-基本外设篇/60-USB": {
"url": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.html",
"filePath": "sdoc/20-基本外设篇/60-USB/index",
"catalogues": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
]
},
"sdoc/20-基本外设篇": {
"url": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.html",
"filePath": "sdoc/20-基本外设篇/index",
"catalogues": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇/01-文件系统": {
"url": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.html",
"filePath": "sdoc/30-进阶篇/01-文件系统/index",
"catalogues": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
]
},
"sdoc/30-进阶篇/02-ESP8266": {
"url": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.html",
"filePath": "sdoc/30-进阶篇/02-ESP8266/index",
"catalogues": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
]
},
"sdoc/30-进阶篇/03-OV7725": {
"url": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.html",
"filePath": "sdoc/30-进阶篇/03-OV7725/index",
"catalogues": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏/01-OLED": {
"url": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.html",
"filePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index",
"catalogues": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏/02-LCD": {
"url": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.html",
"filePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index",
"catalogues": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
]
},
"sdoc/30-进阶篇/04-显示屏": {
"url": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.html",
"filePath": "sdoc/30-进阶篇/04-显示屏/index",
"catalogues": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介": {
"url": "docs/126b096ee4bd15f7d94c92d0.html",
"filePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index",
"catalogues": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
]
},
"sdoc/30-进阶篇/90-FreeRTOS": {
"url": "docs/126b096ee490286163a5b271.html",
"filePath": "sdoc/30-进阶篇/90-FreeRTOS/index",
"catalogues": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
]
},
"sdoc/30-进阶篇": {
"url": "sdoc/advanced-chapter/126b095103e933d0da8853e8.html",
"filePath": "sdoc/30-进阶篇/index",
"catalogues": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
]
},
"sdoc/60-通信专题/01-I2C协议": {
"url": "sdoc/communication/i2c/126b09043eec0234d430a608.html",
"filePath": "sdoc/60-通信专题/01-I2C协议/index",
"catalogues": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
]
},
"sdoc/60-通信专题/10-串口": {
"url": "sdoc/communication/serial-port/126b09044209398a673e2151.html",
"filePath": "sdoc/60-通信专题/10-串口/index",
"catalogues": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
]
},
"sdoc/60-通信专题/30-SPI": {
"url": "sdoc/communication/spi/126b0950dce32a071f087087.html",
"filePath": "sdoc/60-通信专题/30-SPI/index",
"catalogues": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
]
},
"sdoc/60-通信专题/40-CAN": {
"url": "sdoc/communication/can/126b0950f33c30cca3fe3d80.html",
"filePath": "sdoc/60-通信专题/40-CAN/index",
"catalogues": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
]
},
"sdoc/60-通信专题": {
"url": "sdoc/communication/126b09043d6f181654856443.html",
"filePath": "sdoc/60-通信专题/index",
"catalogues": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
]
},
"sdoc": {
"url": "sdoc/126b08a8af2414bbd46eede1.html",
"filePath": "sdoc/index",
"catalogues": [
{
"title": "01-开发工具",
"children": [
{
"title": "01-keil",
"children": [
{
"title": "LV001-keil简介",
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
}
},
{
"title": "LV002-工程创建",
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
}
},
{
"title": "LV010-程序与编译",
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
}
},
{
"title": "LV015-MDK工程文件简介",
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
}
},
{
"title": "LV016-Output目录文件",
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
}
},
{
"title": "LV017-Listing目录文件",
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
}
},
{
"title": "LV020-SCT分散加载文件",
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
}
},
{
"title": "LV025-SCT文件应用",
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
}
},
{
"title": "LV040-在线调试",
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-STM32Cube",
"children": [
{
"title": "LV001-STM32CubeMX简介",
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
}
},
{
"title": "LV002-STM32CubeMX工程创建",
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
}
},
{
"title": "LV010-Makefile管理工程",
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
}
},
{
"title": "LV012-Makefile文件分析",
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
}
},
{
"title": "LV040-LD链接脚本",
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
}
},
{
"title": "LV030-STM32CubeIDE",
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-下载与调试",
"children": [
{
"title": "LV001-下载与调试概述",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
}
},
{
"title": "LV002-JLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
}
},
{
"title": "LV010-JFlash简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
}
},
{
"title": "LV015-STLink怎么使用",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
}
},
{
"title": "LV020-ST-LINK-Utility简介",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
}
},
{
"title": "LV030-串口下载",
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "10-基础篇",
"children": [
{
"title": "01-概述",
"children": [
{
"title": "LV001-ARM体系结构",
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
}
},
{
"title": "LV010-常见存储器",
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
}
},
{
"title": "LV020-CortexM0简介",
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
}
},
{
"title": "LV022-CortexM0存储器映射",
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
}
},
{
"title": "LV030-CortexM3简介",
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
}
},
{
"title": "LV035-CortexM3存储器系统",
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
}
},
{
"title": "LV040-CortexM3异常",
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
}
},
{
"title": "LV040-CortexM3的NVIC中断控制",
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-STM32基础",
"children": [
{
"title": "LV001-STM32概述",
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
}
},
{
"title": "LV010-嵌入式C语言",
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
}
},
{
"title": "LV020-STM32怎么开发",
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
}
},
{
"title": "LV021-认识HAL库",
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
}
},
{
"title": "LV030-STM32程序下载",
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
}
},
{
"title": "LV040-STM32系统架构",
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
}
},
{
"title": "LV045-STM32存储器系统",
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
}
},
{
"title": "LV050-STM32地址重映射",
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-STM32的启动",
"children": [
{
"title": "LV001-启动文件",
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
}
},
{
"title": "LV005-启动过程",
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
}
},
{
"title": "LV010-在内部SRAM调试",
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-STM32的中断",
"children": [
{
"title": "LV001-STM32中断简介",
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-STM32时钟",
"children": [
{
"title": "LV001-STM32F1时钟系统",
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
}
},
{
"title": "LV010-STM32F1的SYSCLK",
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-STM32内部FLASH",
"children": [
{
"title": "LV001-内部FLASH简介",
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
}
},
{
"title": "LV010-FLASH操作流程",
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
}
},
{
"title": "LV020-IAP编程简介",
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
}
},
{
"title": "LV025-IAP编程实现",
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-STM32的内存",
"children": [
{
"title": "LV001-STM32内存简介",
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
}
},
{
"title": "LV010-内存管理",
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
}
}
],
"frontmatter": {}
},
{
"title": "70-STM32电源管理",
"children": [
{
"title": "LV001-电源管理简介",
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
}
},
{
"title": "LV010-三种模式实现",
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "20-基本外设篇",
"children": [
{
"title": "01-GPIO",
"children": [
{
"title": "LV001-STM32的GPIO简介",
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
}
},
{
"title": "LV010-输入输出模式详解",
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
}
},
{
"title": "LV020-GPIO控制LED",
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
}
},
{
"title": "LV030-按键检测",
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
}
},
{
"title": "LV040-外部中断",
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
}
},
{
"title": "LV045-外部中断实例",
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-UART",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
}
},
{
"title": "LV010-STM32的串口",
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
}
},
{
"title": "LV020-串口收发实例",
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
}
}
],
"frontmatter": {}
},
{
"title": "15-定时器",
"children": [
{
"title": "LV001-基本定时器简介",
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
}
},
{
"title": "LV030-通用定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
}
},
{
"title": "LV035-通用定时器的中断",
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
}
},
{
"title": "LV040-通用定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
}
},
{
"title": "LV045-通用定时器输入捕获",
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
}
},
{
"title": "LV050-通用定时器脉冲计数",
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
}
},
{
"title": "LV070-高级定时器简介",
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
}
},
{
"title": "LV075-高级定时器PWM输出",
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
}
},
{
"title": "LV080-高级定时器输出比较模式",
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
}
},
{
"title": "LV085-高级定时器互补输出",
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
}
},
{
"title": "LV090-高级定时器PWM输入",
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
}
},
{
"title": "LV100-SysTick定时器简介",
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
}
},
{
"title": "LV105-自定义延时函数",
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
}
}
],
"frontmatter": {}
},
{
"title": "20-看门狗",
"children": [
{
"title": "LV001-看门狗简介",
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
}
},
{
"title": "LV010-看门狗使用实例",
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
}
}
],
"frontmatter": {}
},
{
"title": "25-FSMC",
"children": [
{
"title": "01-FSMC基础",
"children": [
{
"title": "LV001-FSMC简介",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
}
},
{
"title": "LV005-存储器映射与控制器",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
}
},
{
"title": "LV010-相关HAL库函数",
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
}
}
],
"frontmatter": {}
},
{
"title": "05-外部SRAM",
"children": [
{
"title": "LV001-概述",
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"frontmatter": {
"title": "LV001-概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
}
},
{
"title": "LV002-XM8A51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
}
},
{
"title": "LV005-IS62WV51216简介",
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
}
},
{
"title": "LV015-外部SRAM读写实例",
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-I2C",
"children": [
{
"title": "LV001-STM32的I2C",
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
}
},
{
"title": "LV010-AT24C02简介",
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
}
},
{
"title": "LV015-AT24C02使用实例",
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
}
}
],
"frontmatter": {}
},
{
"title": "35-SPI",
"children": [
{
"title": "LV001-STM32的SPI",
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
}
},
{
"title": "LV010-W25QXXX简介",
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
}
},
{
"title": "LV015-SPI读写W25QXXX实例",
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-DMA",
"children": [
{
"title": "LV001-DMA简介",
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
}
},
{
"title": "LV010-DMA使用实例",
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
}
}
],
"frontmatter": {}
},
{
"title": "50-SDIO",
"children": [
{
"title": "LV001-SD卡简介",
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
}
},
{
"title": "LV015-SD卡的操作",
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
}
},
{
"title": "LV020-STM32的SDIO",
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
}
},
{
"title": "LV025-读写SD卡实例",
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
}
}
],
"frontmatter": {}
},
{
"title": "55-RTC时钟",
"children": [
{
"title": "LV001-RTC简介",
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
}
}
],
"frontmatter": {}
},
{
"title": "60-USB",
"children": [
{
"title": "LV001-USB简介",
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
}
},
{
"title": "LV010-USB读卡器实例",
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "30-进阶篇",
"children": [
{
"title": "01-文件系统",
"children": [
{
"title": "LV001-文件系统简介",
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
}
},
{
"title": "LV010-FATFS简介",
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
}
},
{
"title": "LV015-基于SPIFLASH移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
}
},
{
"title": "LV015-基于SD卡移植FATFS",
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
}
},
{
"title": "LV025-FATFS中自定义的一些函数",
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-ESP8266",
"children": [
{
"title": "LV001-ESP8266模块简介",
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
}
},
{
"title": "LV010-AT指令",
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
}
},
{
"title": "LV015-ESP8266固件烧录",
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
}
},
{
"title": "LV020-ATK-ESP8266使用实例",
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "03-OV7725",
"children": [
{
"title": "LV001-ATK-MC6625F模块简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
}
},
{
"title": "LV010-SCCB协议简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
}
},
{
"title": "LV020-OV7725简介",
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
}
}
],
"frontmatter": {}
},
{
"title": "04-显示屏",
"children": [
{
"title": "01-OLED",
"children": [
{
"title": "LV001-OLED简介",
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
}
},
{
"title": "LV010-8080时序驱动OLED",
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
}
}
],
"frontmatter": {}
},
{
"title": "02-LCD",
"children": [
{
"title": "LV001-LCD简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
}
},
{
"title": "LV010-液晶控制原理",
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
}
},
{
"title": "LV015-ATK-MD0280模块",
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
}
},
{
"title": "LV016-IL9341简介",
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
}
},
{
"title": "LV020-FSMC模拟8080时序",
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
}
},
{
"title": "LV025-LCD显示实例",
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
}
},
{
"title": "LV030-字符编码基础",
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
}
},
{
"title": "LV035-中英文的显示",
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
}
},
{
"title": "LV040-实现任意大小字模",
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "90-FreeRTOS",
"children": [
{
"title": "01-FreeRTOS简介",
"children": [
{
"title": "LV001-FreeRTOS简介",
"url": "/docs/126b096ee4d10f3bb564b607.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
}
],
"frontmatter": {}
},
{
"title": "60-通信专题",
"children": [
{
"title": "01-I2C协议",
"children": [
{
"title": "LV001-I2C简介",
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
}
},
{
"title": "LV020-AT24C02实例分析",
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
}
}
],
"frontmatter": {}
},
{
"title": "10-串口",
"children": [
{
"title": "LV001-串口通信简介",
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
}
},
{
"title": "LV020-RS232简介",
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
}
},
{
"title": "LV030-RS485简介",
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
}
}
],
"frontmatter": {}
},
{
"title": "30-SPI",
"children": [
{
"title": "LV001-SPI简介",
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
}
}
],
"frontmatter": {}
},
{
"title": "40-CAN",
"children": [
{
"title": "LV001-CAN通信简介",
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
}
}
],
"frontmatter": {}
},
{
"title": "LV001-通信概述",
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": {},
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
}
}
],
"frontmatter": {}
}
]
}
}
},
"posts": {
"allPosts": [
{
"url": "/Navigation.html",
"relativePath": "/@pages/Navigation.html",
"frontmatter": {
"title": "我的导航",
"Navigation": true,
"permalink": "/Navigation",
"layout": "page",
"article": false,
"sidebar": false,
"navigationData": [
{
"title": "常用工具",
"items": [
{
"icon": "https://www.ico51.cn/images/logo.png",
"title": "在线制作ico透明图标",
"badge": {
"text": "ico",
"type": "info"
},
"desc": "ico透明图标",
"link": "https://www.ico51.cn/"
},
{
"icon": "/icons/stylus.svg",
"title": "stylus-css",
"badge": {
"text": "stylus",
"type": "tip"
},
"desc": "stylus-to-css",
"link": "https://verytoolz.com/stylus-css.html"
},
{
"icon": "https://www.lddgo.net/img/icon-1732875babb6f45ec2e61eaf37a1c0f0.png",
"title": "YAML-JSON 转换",
"badge": {
"text": "yaml",
"type": "warning"
},
"desc": "yaml-to-json",
"link": "https://www.lddgo.net/convert/yaml-to-json"
},
{
"icon": "https://tool.lu/favicon.ico",
"title": "在线工具",
"badge": {
"text": "tool",
"type": "danger"
},
"desc": "开发人员的工具箱",
"link": "https://tool.lu"
},
{
"icon": "/icons/SVG-file.svg",
"title": "svg",
"badge": {
"text": "tool",
"type": "danger"
},
"desc": "一个在线svg编辑器",
"link": "https://www.tuyitu.com/svg/"
}
]
},
{
"title": "AI 导航",
"items": [
{
"icon": "\thttps://ts4.tc.mm.bing.net/th/id/ODF.YxK1MUJaRoBfBG4UGNrXAA?w=32&h=32&qlt=90&pcl=fffffa&o=6&pid=1.2",
"title": "Deepseek",
"link": "https://chat.deepseek.com/"
},
{
"icon": "https://ts3.tc.mm.bing.net/th/id/ODF.T0iTu20w8jwu9conMCwNGw?w=32&h=32&qlt=90&pcl=fffffc&o=6&pid=1.2",
"title": "百度AI",
"link": "https://chat.baidu.com/search?isShowHello=1&extParams=%7B%22enter_type%22%3A%22plugin%22%7D"
}
]
},
{
"title": "苏木的site",
"items": [
{
"icon": "/images/favicon_sumu32x32.ico",
"title": "苏木",
"desc": "苏木",
"link": "https://sumumm.github.io/"
},
{
"icon": "/images/favicon_sumu32x32.ico",
"title": "苏木",
"desc": "site-hexo",
"link": "https://docs-site.github.io/site-hexo/"
},
{
"icon": "/icons/sumu-icon.svg",
"title": "苏木",
"desc": "site-vitepress",
"link": "https://docs-site.github.io/site-vitepress/"
},
{
"icon": "/icons/vscode-document.svg",
"title": "vscode",
"desc": "vscode",
"link": "https://docs-site.github.io/site-docsify/#/"
}
]
},
{
"title": "site生成",
"items": [
{
"icon": "https://vitejs.cn/vitepress/vitepress-logo-mini.svg",
"title": "VitePress",
"desc": "由 Vite 和 Vue 驱动的静态站点生成器",
"link": "https://vitejs.cn/vitepress/"
},
{
"icon": "https://vuepress.vuejs.org/images/hero.png",
"title": "VuePress",
"desc": "Vue 驱动的静态网站生成器",
"link": "https://vuepress.vuejs.org/zh/"
},
{
"icon": "https://docsify.js.org/_media/icon.svg",
"title": "docsify",
"desc": "一个神奇的文档网站生成器。",
"link": "https://docsify.js.org/#/"
},
{
"icon": "https://hexo.io/logo.svg",
"title": "Hexo",
"desc": "快速、简洁且高效的博客框架",
"link": "https://hexo.io/zh-cn/"
}
]
},
{
"title": "site参考",
"items": [
{
"icon": "https://vitepress.yiov.top/logo.png",
"title": "vitepress-doc",
"desc": "Yiov/vitepress-doc",
"link": "https://vitepress.yiov.top/"
},
{
"icon": "https://i.theojs.cn/logo/lumen-logo-mini.svg",
"title": "s-theo/lumen",
"desc": "专为 VitePress 打造的主题美化与 Vue 扩展组件库",
"link": "https://lumen.theojs.cn/"
},
{
"icon": "https://vp.teek.top/teek-logo-mini.svg",
"title": "Kele-Bingtang/vitepress-theme-teek",
"desc": "一个轻量、简洁高效、灵活配置、易于扩展的 VitePress 主题",
"link": "https://vp.teek.top/"
}
]
},
{
"title": "前端基础",
"items": [
{
"icon": "/icons/javascript.svg",
"title": "JavaScript",
"desc": "现代 JavaScript 教程",
"link": "https://zh.javascript.info/"
},
{
"icon": "/icons/typescript.svg",
"title": "Typescript",
"desc": "具有类型语法的 JavaScript",
"link": "https://ts.nodejs.cn/docs/"
},
{
"icon": "/icons/typescript.svg",
"title": "Typescript",
"desc": "TypeScript 入门教程",
"link": "https://ts.xcatliu.com/"
},
{
"icon": "/icons/typescript.svg",
"title": "Typescript",
"desc": "深入理解 TypeScript",
"link": "https://jkchao.github.io/typescript-book-chinese/"
},
{
"icon": "/icons/typescript.svg",
"title": "Typescript",
"desc": "TypeScript使用指南",
"link": "https://typescript.uihtm.com/"
}
]
},
{
"title": "React 生态",
"items": [
{
"icon": "https://zh-hans.reactjs.org/favicon.ico",
"title": "React",
"desc": "用于构建用户界面的 JavaScript 库",
"link": "https://zh-hans.reactjs.org"
},
{
"icon": "https://reactrouter.com/favicon-light.png",
"title": "React Router",
"desc": "React 的声明式路由",
"link": "https://reactrouter.com"
},
{
"icon": "https://nextjs.org/static/favicon/safari-pinned-tab.svg",
"title": "Next.js",
"desc": "一个用于 Web 的 React 框架",
"link": "https://nextjs.org"
},
{
"icon": "https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg",
"title": "UmiJS",
"desc": "插件化的企业级前端应用框架",
"link": "https://umijs.org"
},
{
"icon": "https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png",
"title": "Ant Design",
"desc": "一套企业级 UI 设计语言和 React 组件库",
"link": "https://ant.design"
},
{
"icon": "https://gw.alipayobjects.com/zos/bmw-prod/69a27fcc-ce52-4f27-83f1-c44541e9b65d.svg",
"title": "Ant Design Mobile",
"desc": "构建移动 WEB 应用程序的 React 组件库",
"link": "https://mobile.ant.design"
},
{
"icon": "https://docs.pmnd.rs/apple-touch-icon.png",
"title": "Zustand",
"desc": "一个小型、快速、可扩展的 React 状态管理解决方案",
"link": "https://docs.pmnd.rs/zustand/getting-started/introduction"
},
{
"icon": "https://valtio.pmnd.rs/favicon.ico",
"title": "Valtio",
"desc": "makes proxy-state simple for React and Vanilla",
"link": "https://valtio.pmnd.rs"
},
{
"icon": "https://jotai.org/favicon.svg",
"title": "Jotai",
"desc": "primitive and flexible state management for React",
"link": "https://jotai.org"
},
{
"icon": "https://cn.redux.js.org/img/redux.svg",
"title": "Redux",
"desc": "JavaScript 应用的状态容器,提供可预测的状态管理",
"link": "https://cn.redux.js.org"
},
{
"icon": "https://zh.mobx.js.org/assets/mobx.png",
"title": "MobX",
"desc": "一个小型、快速、可扩展的 React 状态管理解决方案",
"link": "https://zh.mobx.js.org"
},
{
"icon": "https://ahooks.js.org/simple-logo.svg",
"title": "ahooks",
"desc": "一套高质量可靠的 React Hooks 库",
"link": "https://ahooks.js.org/zh-CN"
}
]
},
{
"title": "Vue 生态",
"items": [
{
"icon": "https://cn.vuejs.org/logo.svg",
"title": "Vue 3",
"desc": "渐进式 JavaScript 框架",
"link": "https://cn.vuejs.org"
},
{
"icon": "https://cn.vuejs.org/logo.svg",
"title": "Vue 2",
"desc": "渐进式 JavaScript 框架",
"link": "https://v2.cn.vuejs.org"
},
{
"icon": "https://cn.vuejs.org/logo.svg",
"title": "Vue Router",
"desc": "Vue.js 的官方路由\n为 Vue.js 提供富有表现力、可配置的、方便的路由",
"link": "https://router.vuejs.org/zh"
},
{
"icon": "https://pinia.vuejs.org/logo.svg",
"title": "Pinia",
"desc": "符合直觉的 Vue.js 状态管理库",
"link": "https://pinia.vuejs.org/zh"
},
{
"icon": "https://nuxt.com/icon.png",
"title": "Nuxt.js",
"desc": "一个基于 Vue.js 的通用应用框架",
"link": "https://nuxt.com"
},
{
"icon": "https://vueuse.org/favicon.svg",
"title": "VueUse",
"desc": "Vue Composition API 的常用工具集",
"link": "https://vueuse.org"
},
{
"icon": "https://element-plus.org/images/element-plus-logo-small.svg",
"title": "Element Plus",
"desc": "基于 Vue 3,面向设计师和开发者的组件库",
"link": "https://element-plus.org"
},
{
"icon": "https://www.antdv.com/assets/logo.1ef800a8.svg",
"title": "Ant Design Vue",
"desc": "Ant Design 的 Vue 实现,开发和服务于企业级后台产品",
"link": "https://antdv.com"
},
{
"icon": "https://fastly.jsdelivr.net/npm/@vant/assets/logo.png",
"title": "Vant",
"desc": "轻量、可定制的移动端 Vue 组件库",
"link": "https://vant-ui.github.io/vant"
},
{
"icon": "https://webapp.didistatic.com/static/webapp/shield/Cube-UI_logo.ico",
"title": "Cube UI",
"desc": "基于 Vue.js 实现的精致移动端组件库",
"link": "https://didi.github.io/cube-ui"
},
{
"icon": "https://img14.360buyimg.com/imagetools/jfs/t1/167902/2/8762/791358/603742d7E9b4275e3/e09d8f9a8bf4c0ef.png",
"title": "NutUI",
"desc": "京东风格的轻量级移动端组件库",
"link": "https://nutui.jd.com"
}
]
},
{
"title": "CSS 相关",
"items": [
{
"icon": "https://postcss.org/assets/logo-3e39b0aa.svg",
"title": "PostCSS",
"desc": "一个用 JavaScript 转换 CSS 的工具",
"link": "https://postcss.org"
},
{
"icon": "https://sass-lang.com/assets/img/logos/logo-b6e1ef6e.svg",
"title": "Sass",
"desc": "一个成熟,稳定,功能强大的专业级 CSS 扩展语言",
"link": "https://sass-lang.com"
},
{
"icon": "https://www.tailwindcss.cn/apple-touch-icon.png",
"title": "TailwindCSS 中文网",
"desc": "一个功能类优先的 CSS 框架",
"link": "https://www.tailwindcss.cn"
}
]
},
{
"title": "Node 相关",
"items": [
{
"icon": "https://avatars.githubusercontent.com/u/9950313?s=48&v=4",
"title": "Node.js",
"desc": "Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境",
"link": "https://nodejs.org/zh-cn"
},
{
"icon": "https://expressjs.com/images/favicon.png",
"title": "Express",
"desc": "基于 Node.js 平台,快速、开放、极简的 Web 开发框架",
"link": "https://expressjs.com"
},
{
"icon": "/icons/koa.svg",
"title": "Koa",
"desc": "基于 Node.js 平台的下一代 web 开发框架",
"link": "https://koajs.com"
},
{
"icon": "https://www.eggjs.org/favicon.png",
"title": "Egg",
"desc": "为企业级框架和应用而生",
"link": "https://www.eggjs.org/zh-CN"
},
{
"icon": "https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg",
"title": "Nest.js 中文文档",
"desc": "用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js 框架",
"link": "https://docs.nestjs.cn"
}
]
},
{
"title": "可视化",
"items": [
{
"icon": "https://echarts.apache.org/zh/images/favicon.png",
"title": "ECharts",
"desc": "一个基于 JavaScript 的开源可视化图表库",
"link": "https://echarts.apache.org/zh/index.html"
},
{
"icon": "https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*A-lcQbVTpjwAAAAAAAAAAAAADmJ7AQ/original",
"title": "AntV",
"desc": "蚂蚁集团全新一代数据可视化解决方案,致力于提供一套简单方便、专业可靠、无限可能的数据可视化最佳实践。",
"link": "https://antv.vision/zh/"
},
{
"icon": "https://d3js.org/logo.svg",
"title": "D3.js",
"desc": "一个遵循 Web 标准用于可视化数据的 JavaScript 库",
"link": "https://d3js.org"
},
{
"icon": "https://www.chartjs.org/favicon.ico",
"title": "Chart.js",
"desc": "一个简单而灵活的 JavaScript 图表库",
"link": "https://www.chartjs.org"
},
{
"icon": "https://threejs.org/files/favicon.ico",
"title": "Three.js",
"desc": "JavaScript 3d 库",
"link": "https://threejs.org"
}
]
},
{
"title": "编译&构建&打包",
"items": [
{
"icon": "https://www.webpackjs.com/icon_180x180.png",
"title": "Webpack 中文网",
"desc": "一个用于现代 JavaScript 应用程序的静态模块打包工具",
"link": "https://www.webpackjs.com"
},
{
"icon": "https://cn.vitejs.dev/logo.svg",
"title": "Vite 中文文档",
"desc": "下一代前端工具链",
"link": "https://cn.vitejs.dev"
},
{
"icon": "https://www.rollupjs.com/img/favicon.png",
"title": "Rollup",
"desc": "Rollup 是一个 JavaScript 模块打包器",
"link": "https://www.rollupjs.com"
},
{
"icon": "https://turbo.build/images/favicon-dark/apple-touch-icon.png",
"title": "Turbo",
"desc": "Turbo is an incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust",
"link": "https://turbo.build"
},
{
"icon": "https://www.babeljs.cn/img/favicon.png",
"title": "Babel",
"desc": "Babel 是一个 JavaScript 编译器",
"link": "https://www.babeljs.cn"
},
{
"icon": "https://esbuild.github.io/favicon.svg",
"title": "esbuild",
"desc": "An extremely fast bundler for the web",
"link": "https://esbuild.github.io"
},
{
"icon": "https://swc.rs/favicon/apple-touch-icon.png",
"title": "SWC",
"desc": "Rust-based platform for the Web",
"link": "https://swc.rs"
},
{
"icon": "/icons/unbuild.svg",
"title": "unbuild",
"desc": "📦 A unified JavaScript build system",
"link": "https://github.com/unjs/unbuild"
}
]
},
{
"title": "站点生成器",
"items": [
{
"icon": "https://astro.build/favicon.svg",
"title": "Astro",
"desc": "一个现代化的轻量级静态站点生成器",
"link": "https://astro.build"
},
{
"icon": "https://cn.vuejs.org/logo.svg",
"title": "VitePress",
"desc": "由 Vite 和 Vue 驱动的静态网站生成器",
"link": "https://vitepress.dev"
},
{
"icon": "https://cn.vuejs.org/logo.svg",
"title": "VuePress",
"desc": "Vue 驱动的静态网站生成器",
"link": "https://vuepress.vuejs.org/zh"
},
{
"icon": "https://gw.alipayobjects.com/zos/bmw-prod/d3e3eb39-1cd7-4aa5-827c-877deced6b7e/lalxt4g3_w256_h256.png",
"title": "dumi",
"desc": "基于 Umi 为组件研发而生的静态站点框架",
"link": "https://d.umijs.org"
},
{
"icon": "https://docusaurus.io/zh-CN/img/docusaurus.ico",
"title": "Docusaurus",
"desc": "基于 React 的静态网站生成器",
"link": "https://docusaurus.io/zh-CN"
}
]
},
{
"title": "图标库",
"items": [
{
"icon": "https://img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg",
"title": "iconfont",
"desc": "国内功能很强大且图标内容很丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能",
"link": "https://www.iconfont.cn"
},
{
"icon": "https://lf1-cdn2-tos.bytegoofy.com/bydesign/iconparksite/logo.svg",
"title": "IconPark 图标库",
"desc": "IconPark图标库是一个通过技术驱动矢量图标样式的开源图标库,可以实现根据单一 SVG 源文件变换出多种主题, 具备丰富的分类、更轻量的代码和更灵活的使用场景;致力于构建高质量、统一化、可定义的图标资源,让大多数人都能够选择适合自己的风格图标",
"link": "https://iconpark.oceanengine.com/official"
},
{
"icon": "https://emoji.muan.co/appicon.png",
"title": "Emoji searcher",
"desc": "Emoji 表情大全",
"link": ""
}
]
},
{
"title": "社区",
"items": [
{
"title": "Github",
"icon": {
"svg": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><title>GitHub</title><path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"/></svg>"
},
"desc": "一个面向开源及私有软件项目的托管平台",
"link": "https://github.com"
},
{
"icon": "https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png",
"title": "Stack Overflow",
"desc": "全球最大的技术问答网站",
"link": "https://stackoverflow.com"
},
{
"title": "稀土掘金",
"icon": "https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web//static/favicons/apple-touch-icon.png",
"desc": "面向全球中文开发者的技术内容分享与交流平台",
"link": "https://juejin.cn"
},
{
"title": "V2EX",
"icon": "https://www.v2ex.com/static/icon-192.png",
"desc": "一个关于分享和探索的地方",
"link": "https://www.v2ex.com"
},
{
"title": "SegmentFault 思否",
"icon": "https://static.segmentfault.com/main_site_next/0dc4bace/touch-icon.png",
"desc": "技术问答开发者社区",
"link": "https://segmentfault.com"
},
{
"title": "博客园",
"icon": "/icons/cnblogs.svg",
"desc": "博客园是一个面向开发者的知识分享社区",
"link": "https://www.cnblogs.com"
},
{
"title": "知乎",
"icon": "https://static.zhihu.com/heifetz/assets/apple-touch-icon-60.362a8eac.png",
"desc": "中文互联网高质量的问答社区和创作者聚集的原创内容平台",
"link": "https://juejin.cn"
}
]
}
]
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "我的导航",
"date": "2025-10-10 14:31:02",
"capture": "欢迎访问网站导航页面!\n\n_导航页面功能已启用_"
},
{
"url": "/archives.html",
"relativePath": "/@pages/archivesPage.html",
"frontmatter": {
"title": "归档",
"permalink": "/archives",
"archivesPage": true,
"layout": "page",
"article": false,
"sidebar": false
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "归档",
"date": "2025-10-10 14:31:02",
"capture": ""
},
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
}
],
"originPosts": [
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
}
],
"sortPostsByDateAndSticky": [
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
},
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
}
],
"sortPostsByDate": [
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
},
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
}
],
"groupPostsByYear": {
"2025 ": [
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
},
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
}
]
},
"groupPostsByYearMonth": {
"2025 ": {
"10": [
{
"url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
"frontmatter": {
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
"useduuid": "5c7584cc2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-IAP编程实现",
"date": "2025-10-10 22:00:38",
"excerpt": "",
"capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行, 我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】→【Target】\n<img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
},
{
"url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
"frontmatter": {
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
"useduuid": "4f27972bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-IAP编程简介",
"date": "2025-10-08 20:18:18",
"excerpt": "",
"capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
},
{
"url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
"frontmatter": {
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3a7296e85ae54af393dd0790947698ce",
"useduuid": "3a7296e85"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-内存管理",
"date": "2025-10-08 09:57:15",
"excerpt": "",
"capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n <f"
}
],
"09": [
{
"url": "/docs/126b096ee4d10f3bb564b607.html",
"relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
"frontmatter": {
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/docs/126b096ee4d10f3bb564b607",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bb564b607089439882d4247b57282de9",
"useduuid": "bb564b607"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FreeRTOS简介",
"date": "2025-09-29 06:31:21",
"excerpt": "",
"capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n> 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
"frontmatter": {
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "30989fbcc8354f6baad6455294de0120",
"useduuid": "30989fbcc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-实现任意大小字模",
"date": "2025-09-27 19:37:13",
"excerpt": "",
"capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
"frontmatter": {
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
"useduuid": "0941e36ed"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-中英文的显示",
"date": "2025-09-27 19:19:15",
"excerpt": "",
"capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
"frontmatter": {
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3f67e99cc1774328be76eff3ae429948",
"useduuid": "3f67e99cc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-字符编码基础",
"date": "2025-09-27 19:14:24",
"excerpt": "",
"capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n<img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。 所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
"frontmatter": {
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "570d31d42d894e208a1fb9d5c484e257",
"useduuid": "570d31d42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-LCD显示实例",
"date": "2025-09-27 19:10:01",
"excerpt": "",
"capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n<img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
"frontmatter": {
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
"useduuid": "7f0bd772f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-FSMC模拟8080时序",
"date": "2025-09-27 18:49:51",
"excerpt": "",
"capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n<img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" />\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
"frontmatter": {
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
"useduuid": "80fa9e2fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-IL9341简介",
"date": "2025-09-27 18:41:11",
"excerpt": "",
"capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
"frontmatter": {
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "983ad47b1ccb49c59396418e90556b0c",
"useduuid": "983ad47b1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ATK-MD0280模块",
"date": "2025-09-27 18:37:18",
"excerpt": "",
"capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
"frontmatter": {
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
"useduuid": "20ea5c5be"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-液晶控制原理",
"date": "2025-09-27 13:42:19",
"excerpt": "",
"capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n<img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
},
{
"url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
"frontmatter": {
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3f69973ef4142428240aba5719aeeb0",
"useduuid": "a3f69973e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-LCD简介",
"date": "2025-09-27 13:37:07",
"excerpt": "",
"capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。 \n<img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
"frontmatter": {
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "247b327e5f1747919749deb8038e066d",
"useduuid": "247b327e5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-8080时序驱动OLED",
"date": "2025-09-27 13:33:05",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n<img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
},
{
"url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
"relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
"frontmatter": {
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "48085516b89044b2a637057cfaac3f5c",
"useduuid": "48085516b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-OLED简介",
"date": "2025-09-27 13:20:12",
"excerpt": "",
"capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
"frontmatter": {
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "13cd356e84f447f3b52ee1a287368dce",
"useduuid": "13cd356e8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-OV7725简介",
"date": "2025-09-27 13:16:00",
"excerpt": "",
"capture": "一、OV7725简介\n 1. CCD Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n<img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
"frontmatter": {
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d9885525026649bdb9a31be28b79a722",
"useduuid": "d98855250"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-SCCB协议简介",
"date": "2025-09-27 13:15:00",
"excerpt": "",
"capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
},
{
"url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
"relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
"frontmatter": {
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
"useduuid": "a7bd0fd02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ATK-MC6625F模块简介",
"date": "2025-09-27 13:14:00",
"excerpt": "",
"capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。 \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
},
{
"url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
"frontmatter": {
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
"useduuid": "fad5c2a07"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-USB读卡器实例",
"date": "2025-09-27 13:08:09",
"excerpt": "",
"capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
},
{
"url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
"relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
"frontmatter": {
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3760129282bc45c68e9217915df4f46b",
"useduuid": 376012928
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-USB简介",
"date": "2025-09-27 13:05:45",
"excerpt": "",
"capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。 \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
"frontmatter": {
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
"useduuid": "ad8380cb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ATK-ESP8266使用实例",
"date": "2025-09-27 12:52:43",
"excerpt": "",
"capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示: \n<img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
"frontmatter": {
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e18399844bf344e3bb81cdc33db73395",
"useduuid": "e18399844"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-ESP8266固件烧录",
"date": "2025-09-27 12:50:00",
"excerpt": "",
"capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n<img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n<img src=\"./LV01"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
"frontmatter": {
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21a6605a91b34e7b87e3081f66267021",
"useduuid": "21a6605a9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT指令",
"date": "2025-09-27 12:48:07",
"excerpt": "",
"capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
},
{
"url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
"relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
"frontmatter": {
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
"useduuid": "ca9aa7929"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ESP8266模块简介",
"date": "2025-09-27 12:45:25",
"excerpt": "",
"capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n<img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
},
{
"url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
"frontmatter": {
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
"useduuid": "89b1ebe84"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-三种模式实现",
"date": "2025-09-27 12:04:52",
"excerpt": "",
"capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n<img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n<img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
},
{
"url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
"relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
"frontmatter": {
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c503588060cf485a965221f48977e91d",
"useduuid": "c50358806"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-电源管理简介",
"date": "2025-09-27 12:01:51",
"excerpt": "",
"capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。 \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
},
{
"url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
"relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
"frontmatter": {
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
"useduuid": "20a3f191c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-RTC简介",
"date": "2025-09-27 11:18:52",
"excerpt": "",
"capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n<img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
"frontmatter": {
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
"useduuid": "4b7d725e9"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-FATFS中自定义的一些函数",
"date": "2025-09-27 11:14:30",
"excerpt": "",
"capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n BYTE *work; // 挂载的时候用\n FIL *file; // 文件1\n FIL *ftemp; // 文件2\n UINT br; "
},
{
"url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
"useduuid": "1a47f120c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SD卡移植FATFS",
"date": "2025-09-27 11:10:24",
"excerpt": "",
"capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
"frontmatter": {
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91bda267a4934867a0b05673bbc3ef13",
"useduuid": "91bda267a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-基于SPIFLASH移植FATFS",
"date": "2025-09-27 10:59:30",
"excerpt": "",
"capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
"frontmatter": {
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
"useduuid": "87e8eb3f7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FATFS简介",
"date": "2025-09-27 10:54:25",
"excerpt": "",
"capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
},
{
"url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
"relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
"frontmatter": {
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
"useduuid": "78ccbca10"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-文件系统简介",
"date": "2025-09-27 10:50:24",
"excerpt": "",
"capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 \n<img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
},
{
"url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
"frontmatter": {
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
"useduuid": "60c8ed17e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-读写SD卡实例",
"date": "2025-09-27 10:42:10",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n<img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
},
{
"url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
"frontmatter": {
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b964fa55b1c49f2849632ac18e58758",
"useduuid": "5b964fa55"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32的SDIO",
"date": "2025-09-27 10:40:13",
"excerpt": "",
"capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
},
{
"url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
"frontmatter": {
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
"useduuid": "60d235356"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SD卡的操作",
"date": "2025-09-27 10:37:45",
"excerpt": "",
"capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands 章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。 \n<img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
},
{
"url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
"relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
"frontmatter": {
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
"useduuid": "81c4d2fd3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SD卡简介",
"date": "2025-09-27 10:35:05",
"excerpt": "",
"capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
},
{
"url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
"frontmatter": {
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
"useduuid": "7c7b64826"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-DMA使用实例",
"date": "2025-09-27 10:31:26",
"excerpt": "",
"capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器 。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。 \n 1. STM32CubeMX配置\n<img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
},
{
"url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
"relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
"frontmatter": {
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
"useduuid": "9af52caac"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-DMA简介",
"date": "2025-09-27 10:29:17",
"excerpt": "",
"capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。 例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
},
{
"url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
"frontmatter": {
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
"useduuid": "ff053e7ff"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-SPI读写W25QXXX实例",
"date": "2025-09-27 10:20:25",
"excerpt": "",
"capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。 \n 二、硬件原理图\n<img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
},
{
"url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
"frontmatter": {
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
"useduuid": "a3fbcba93"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-W25QXXX简介",
"date": "2025-09-27 10:15:14",
"excerpt": "",
"capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。 \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
},
{
"url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
"relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
"frontmatter": {
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89c830ae3a594952be17b5abc6bbb737",
"useduuid": "89c830ae3"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的SPI",
"date": "2025-09-27 10:11:02",
"excerpt": "",
"capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
},
{
"url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
"relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
"frontmatter": {
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
"useduuid": "df8f7407f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-CAN通信简介",
"date": "2025-09-27 10:07:42",
"excerpt": "",
"capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。 \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
},
{
"url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
"frontmatter": {
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
"useduuid": "e7c68cbb5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-RS485简介",
"date": "2025-09-27 10:05:51",
"excerpt": "",
"capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。 485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
},
{
"url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
"frontmatter": {
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bd6db38856214d8db0d0697d94245e7d",
"useduuid": "bd6db3885"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-RS232简介",
"date": "2025-09-27 10:05:23",
"excerpt": "",
"capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
},
{
"url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
"relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
"frontmatter": {
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
"useduuid": "50b1e36d8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-SPI简介",
"date": "2025-09-27 09:50:19",
"excerpt": "",
"capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
},
{
"url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
"relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
"frontmatter": {
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4bdd2a68030419b91dea7af452724aa",
"useduuid": "e4bdd2a68"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32内存简介",
"date": "2025-09-26 07:26:04",
"excerpt": "",
"capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n<img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" />\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
},
{
"url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
"frontmatter": {
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
"useduuid": "8aa9081c5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-FLASH操作流程",
"date": "2025-09-25 22:53:10",
"excerpt": "",
"capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
},
{
"url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
"relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
"frontmatter": {
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f3ed95339a054335bd7861fbbdfca984",
"useduuid": "f3ed95339"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-内部FLASH简介",
"date": "2025-09-25 22:44:55",
"excerpt": "",
"capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
},
{
"url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
"frontmatter": {
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "302faabd7f05494cbdcffb39c1c91164",
"useduuid": "302faabd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-AT24C02使用实例",
"date": "2025-09-25 22:37:35",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数; \n(5)编写读写 EEPROM 存"
},
{
"url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
"frontmatter": {
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
"useduuid": "f00cacd6c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-AT24C02简介",
"date": "2025-09-25 22:33:11",
"excerpt": "",
"capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
},
{
"url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
"relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
"frontmatter": {
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "883ac1ab454e45c8903061818823ca7f",
"useduuid": "883ac1ab4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的I2C",
"date": "2025-09-25 22:29:13",
"excerpt": "",
"capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n<img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
"frontmatter": {
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3b97733d0c5f43148008ceafa2203f32",
"useduuid": "3b97733d0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-外部SRAM读写实例",
"date": "2025-09-24 20:06:58",
"excerpt": "",
"capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n<img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
"frontmatter": {
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "81adda5266e04132bfcad67ecceec69d",
"useduuid": "81adda526"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-相关HAL库函数",
"date": "2025-09-24 20:03:41",
"excerpt": "",
"capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下: \n```c\nBTCR[0]---\nBTCR[2]--->FSMC_BCR2, BTCR[3]--->FSMC_BTR2\nBTCR[4]--->FSMC_BCR3, BTCR[5]--->FSMC_BTR3\nBTCR[6]--->FSMC_BCR4, BTCR[7]--->FSMC_BTR4\n"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
"frontmatter": {
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
"useduuid": "21416c9a0"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-存储器映射与控制器",
"date": "2025-09-24 19:42:24",
"excerpt": "",
"capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
},
{
"url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
"frontmatter": {
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
"useduuid": "3e8704ba7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-FSMC简介",
"date": "2025-09-24 19:23:41",
"excerpt": "",
"capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。 而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
"frontmatter": {
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
"useduuid": "fcadf7acc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-概述",
"date": "2025-09-24 19:13:23",
"excerpt": "",
"capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
"frontmatter": {
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
"useduuid": "61c837fd7"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-IS62WV51216简介",
"date": "2025-09-24 19:11:58",
"excerpt": "",
"capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n<img src=\"./LV005-IS62WV51216简介/i"
},
{
"url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
"relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
"frontmatter": {
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0a79d393fee944b89889bdacfda6ea95",
"useduuid": "0a79d393f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-XM8A51216简介",
"date": "2025-09-24 19:09:49",
"excerpt": "",
"capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。 \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n<im"
},
{
"url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
"frontmatter": {
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
"useduuid": "5493dc70e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV017-Listing目录文件",
"date": "2025-09-23 07:51:58",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n<img src=\"./LV017-Listing目录文件/img/image-202"
},
{
"url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
"frontmatter": {
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
"useduuid": "0d6f0eef1"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-MDK工程文件简介",
"date": "2025-09-23 07:49:41",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n<table>\n <tbody>\n <tr><td align=\"left\">后缀</td><td align=\"left\">说明</td></tr>\n <tr><td align=\"left"
},
{
"url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
"frontmatter": {
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
"useduuid": "a0ff9cf1d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV016-Output目录文件",
"date": "2025-09-23 07:48:09",
"excerpt": "",
"capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n<img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" />\n点击 MDK 中"
},
{
"url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
"relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
"useduuid": "b7b197798"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-22 07:46:53",
"excerpt": "",
"capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
},
{
"url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
"frontmatter": {
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "69028172daa144dcbab34851329c3348",
"useduuid": "69028172d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-AT24C02实例分析",
"date": "2025-09-22 07:40:58",
"excerpt": "",
"capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n<img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送 I2C 设备地址,每个 I2C 器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个 I2C 器件。这是一个 "
},
{
"url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
"relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
"frontmatter": {
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
"useduuid": "b963bfb0d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-I2C简介",
"date": "2025-09-22 07:39:01",
"excerpt": "",
"capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速 I2C 总"
},
{
"url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
"relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
"frontmatter": {
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
"useduuid": "85fda3fb8"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-通信概述",
"date": "2025-09-22 07:36:28",
"excerpt": "",
"capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n<img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
"frontmatter": {
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "296442c6e9ba4600b39cd12075ea87af",
"useduuid": "296442c6e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-看门狗使用实例",
"date": "2025-09-22 07:31:29",
"excerpt": "",
"capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置 \n 2.1 IWDG配置\n<img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
},
{
"url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
"relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
"frontmatter": {
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
"useduuid": "95cb39541"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-看门狗简介",
"date": "2025-09-22 07:28:09",
"excerpt": "",
"capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
},
{
"url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
"frontmatter": {
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
"useduuid": "1f9e3c819"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV105-自定义延时函数",
"date": "2025-09-21 21:28:51",
"excerpt": "",
"capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法 \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief 初始化延迟函数\n * @param syscl"
},
{
"url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
"frontmatter": {
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
"useduuid": "27620ad1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV100-SysTick定时器简介",
"date": "2025-09-21 21:17:57",
"excerpt": "",
"capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器 小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。 \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
"frontmatter": {
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
"useduuid": "51a9eec42"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV090-高级定时器PWM输入",
"date": "2025-09-21 18:48:05",
"excerpt": "",
"capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n<img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
"frontmatter": {
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "487d6c4384224a459898d149b83609e0",
"useduuid": "487d6c438"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV085-高级定时器互补输出",
"date": "2025-09-21 18:46:55",
"excerpt": "",
"capture": "一、基本概念\n什么是互补输出?还带死区控制? 我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n<img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n<p align=\"center\">\n 图一-1 互补输出\n</p>\n上图中, CH1 输出黄色的 PWM,它的互补通道"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
"frontmatter": {
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "099c9ba29781487ab77ef3977ecd7122",
"useduuid": "099c9ba29"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV080-高级定时器输出比较模式",
"date": "2025-09-21 18:44:16",
"excerpt": "",
"capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n<img sr"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
"frontmatter": {
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "02b42403e6334b1e88b3aefe535488bf",
"useduuid": "02b42403e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV075-高级定时器PWM输出",
"date": "2025-09-21 18:43:35",
"excerpt": "",
"capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
},
{
"url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
"frontmatter": {
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
"useduuid": "65c6674f2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV070-高级定时器简介",
"date": "2025-09-21 18:42:48",
"excerpt": "",
"capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。 \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下: \n<img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
"frontmatter": {
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
"useduuid": "74e57e381"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-通用定时器脉冲计数",
"date": "2025-09-21 18:41:35",
"excerpt": "",
"capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。 \n 二、定时器资源说明\n<img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
},
{
"url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
"frontmatter": {
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
"useduuid": "5fdfb5648"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-通用定时器输入捕获",
"date": "2025-09-21 18:41:00",
"excerpt": "",
"capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n<img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
"frontmatter": {
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7bc66d777a344e838bab8b97634f96bc",
"useduuid": "7bc66d777"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-通用定时器PWM输出",
"date": "2025-09-21 18:39:38",
"excerpt": "",
"capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示: \n<img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
"frontmatter": {
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
"useduuid": "ebbce26b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-通用定时器的中断",
"date": "2025-09-21 18:39:03",
"excerpt": "",
"capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n<img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中: \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
},
{
"url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
"frontmatter": {
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "36809798e68046309b813b9706a23f8a",
"useduuid": "36809798e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-通用定时器简介",
"date": "2025-09-21 18:38:12",
"excerpt": "",
"capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示: \n<img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
},
{
"url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
"relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
"frontmatter": {
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
"useduuid": "427f3a2b2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-基本定时器简介",
"date": "2025-09-21 18:34:59",
"excerpt": "",
"capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。 \n 2. 基本定时器框图 \n<img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
},
{
"url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
"frontmatter": {
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f4a0617fc94447a8962e262d9db98842",
"useduuid": "f4a0617fc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-串口收发实例",
"date": "2025-09-21 14:59:56",
"excerpt": "",
"capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。 \n<img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
},
{
"url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
"frontmatter": {
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "38b1027380d146cb959e571687931c97",
"useduuid": "38b102738"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32的串口",
"date": "2025-09-21 14:54:53",
"excerpt": "",
"capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
},
{
"url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
"relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
"frontmatter": {
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ac7962cbf7d245659539f5436bb59e37",
"useduuid": "ac7962cbf"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-串口通信简介",
"date": "2025-09-21 14:40:27",
"excerpt": "",
"capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示: \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
},
{
"url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
"frontmatter": {
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ef8558043211434e9696dd7586e40951",
"useduuid": "ef8558043"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-STM32F1的SYSCLK",
"date": "2025-09-21 13:12:17",
"excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
"capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源 \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分, \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
},
{
"url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
"relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
"frontmatter": {
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
"useduuid": "6ee395582"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32F1时钟系统",
"date": "2025-09-21 13:01:35",
"excerpt": "",
"capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n<img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
},
{
"url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
"frontmatter": {
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
"useduuid": "89a3bc4c6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-外部中断实例",
"date": "2025-09-21 11:31:28",
"excerpt": "",
"capture": "一、硬件原理图\n<img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n<img src=\"./LV"
},
{
"url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
"frontmatter": {
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
"useduuid": "9e1d6100f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-外部中断",
"date": "2025-09-21 11:01:08",
"excerpt": "",
"capture": ">\n>- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n>- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n<img src=\"./LV040-外部中断/img/image-20230501150"
},
{
"url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
"relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
"frontmatter": {
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
"useduuid": "fa604782d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32中断简介",
"date": "2025-09-21 10:39:37",
"excerpt": "",
"capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
},
{
"url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
"frontmatter": {
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
"useduuid": "b7ad1d6a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-按键检测",
"date": "2025-09-20 22:46:55",
"excerpt": "",
"capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n<img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n<img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
},
{
"url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
"frontmatter": {
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5c40474c47fc44e49114f4489f7fb359",
"useduuid": "5c40474c4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-GPIO控制LED",
"date": "2025-09-20 22:42:02",
"excerpt": "",
"capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n<img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
},
{
"url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
"frontmatter": {
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
"useduuid": "d5b541ecd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-输入输出模式详解",
"date": "2025-09-20 22:39:55",
"excerpt": "",
"capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
},
{
"url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
"relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
"frontmatter": {
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e4f658296d8f440694a80e81f31777d4",
"useduuid": "e4f658296"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32的GPIO简介",
"date": "2025-09-20 22:34:42",
"excerpt": "",
"capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
},
{
"url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
"frontmatter": {
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
"useduuid": "a561ccf1b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-在内部SRAM调试",
"date": "2025-09-20 20:21:57",
"excerpt": "",
"capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
},
{
"url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
"frontmatter": {
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "9cd9ba36208d49f99352645293a0d904",
"useduuid": "9cd9ba362"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV005-启动过程",
"date": "2025-09-20 19:35:11",
"excerpt": "",
"capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
},
{
"url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
"relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
"frontmatter": {
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3285742cb8d24fba98867646d8e8231b",
"useduuid": "3285742cb"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-启动文件",
"date": "2025-09-20 19:22:32",
"excerpt": "",
"capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n<img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
},
{
"url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
"frontmatter": {
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
"useduuid": "bc0b2f2dc"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32程序下载",
"date": "2025-09-20 19:06:07",
"excerpt": "",
"capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n<img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
},
{
"url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
"frontmatter": {
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
"useduuid": "e70afead6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-在线调试",
"date": "2025-09-20 18:52:00",
"excerpt": "",
"capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】→【Start/Stop Debug Session】启动:\n<"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
"frontmatter": {
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "53e71bc02dd346aeac5749700b205317",
"useduuid": "53e71bc02"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-LD链接脚本",
"date": "2025-09-20 15:38:28",
"excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
"capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
"frontmatter": {
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6eabe9106e39465d81b7853e19f74deb",
"useduuid": "6eabe9106"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-STM32CubeIDE",
"date": "2025-09-20 15:31:21",
"excerpt": "",
"capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
"frontmatter": {
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7c442bfe2f7348608819bf852cebb54e",
"useduuid": "7c442bfe2"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV012-Makefile文件分析",
"date": "2025-09-20 15:29:50",
"excerpt": "",
"capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
"frontmatter": {
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
"useduuid": "c7df7916d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-Makefile管理工程",
"date": "2025-09-20 15:25:27",
"excerpt": "",
"capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】→【New Project】\n<img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- (2)【选择芯片型号】→【Start Project】\n<img src=\"./LV010-Makefile"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
"frontmatter": {
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
"useduuid": "a7fd1934d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV025-SCT文件应用",
"date": "2025-09-20 14:57:17",
"excerpt": "",
"capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n<img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" />\n在 MDK"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
"frontmatter": {
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "dbc05b46abca47d8a176762f5148dc50",
"useduuid": "dbc05b46a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-SCT分散加载文件",
"date": "2025-09-20 14:48:21",
"excerpt": "",
"capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
},
{
"url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
"frontmatter": {
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
"useduuid": "125e57a5f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-程序与编译",
"date": "2025-09-20 13:51:08",
"excerpt": "",
"capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n<img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
},
{
"url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
"frontmatter": {
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
"useduuid": "91c1151a6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV022-CortexM0存储器映射",
"date": "2025-09-20 13:44:05",
"excerpt": "",
"capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n<img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n<"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
"frontmatter": {
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
"useduuid": "ab18839bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV050-STM32地址重映射",
"date": "2025-09-20 13:39:45",
"excerpt": "",
"capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
"frontmatter": {
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
"useduuid": "7e72c8780"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV045-STM32存储器系统",
"date": "2025-09-20 12:54:55",
"excerpt": "",
"capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
},
{
"url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
"frontmatter": {
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
"useduuid": "031c3f015"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-STM32系统架构",
"date": "2025-09-20 12:52:15",
"excerpt": "",
"capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。 \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n<img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
},
{
"url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
"frontmatter": {
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5e7260fce3184ab293e2a218bc58687b",
"useduuid": "5e7260fce"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV021-认识HAL库",
"date": "2025-09-20 09:39:04",
"excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
"capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。 \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
},
{
"url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
"frontmatter": {
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e21862cc6b54423c827258b8732bcdd8",
"useduuid": "e21862cc6"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-STM32怎么开发",
"date": "2025-09-20 09:24:17",
"excerpt": "",
"capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系 \n一般我们都是从学 51 单片机开发转而学习 STM32 "
},
{
"url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
"frontmatter": {
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3cc0a657a05d403785cc85fa30a99505",
"useduuid": "3cc0a657a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-嵌入式C语言",
"date": "2025-09-20 09:17:32",
"excerpt": "",
"capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n<img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
},
{
"url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
"relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
"frontmatter": {
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "3ad05a48eac840679287e1b2301b039a",
"useduuid": "3ad05a48e"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32概述",
"date": "2025-09-20 09:13:06",
"excerpt": "",
"capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。 \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n<img src=\"./LV001-STM32概述/img/image-20230417223005421"
},
{
"url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
"frontmatter": {
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
"useduuid": "0009ffc8b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3的NVIC中断控制",
"date": "2025-09-20 09:04:52",
"excerpt": "",
"capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
},
{
"url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
"frontmatter": {
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
"useduuid": "28ed9ee4c"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV040-CortexM3异常",
"date": "2025-09-20 08:13:37",
"excerpt": "",
"capture": "一、常见缩略语含义\n| 缩写 | 说明 |\n| ---- | ---------------------------------- |\n| IRQ | 中断请求(通常是指外部中断的请求) |\n| ISR | 中断服务例程 |\n| NMI | 不可屏蔽中断 |\n| NVIC | 嵌套向量中断控制器 |\n| PSP | 进程堆栈指针 |\n 二、异常\n 1. 什么是异常?"
},
{
"url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
"frontmatter": {
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
"useduuid": "1792b640a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV035-CortexM3存储器系统",
"date": "2025-09-18 07:57:02",
"excerpt": "",
"capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括: \n(1)闪存地址重载及断点单"
},
{
"url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
"frontmatter": {
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6645cba90f414432ac823c9d1938fc37",
"useduuid": "6645cba90"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-CortexM3简介",
"date": "2025-09-18 07:49:14",
"excerpt": "",
"capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
},
{
"url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
"frontmatter": {
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "5b982661dbf54e3db91954b53e220c58",
"useduuid": "5b982661d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-CortexM0简介",
"date": "2025-09-18 07:45:56",
"excerpt": "",
"capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n<img src=\"./LV020-CortexM"
},
{
"url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
"frontmatter": {
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
"useduuid": "986816cf4"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-常见存储器",
"date": "2025-09-17 21:31:07",
"excerpt": "",
"capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n<img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
},
{
"url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
"relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
"frontmatter": {
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "f31526d004e841cf942bb1c43e30f261",
"useduuid": "f31526d00"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-ARM体系结构",
"date": "2025-09-17 21:18:22",
"excerpt": "",
"capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n<img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
"frontmatter": {
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
"useduuid": "fd74b243b"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV030-串口下载",
"date": "2025-09-17 19:54:30",
"excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
"capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n<img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
"frontmatter": {
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
"useduuid": "fafba387f"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV020-ST-LINK-Utility简介",
"date": "2025-09-17 19:46:40",
"excerpt": "",
"capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
"frontmatter": {
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
"useduuid": "87c20e13a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV015-STLink怎么使用",
"date": "2025-09-17 19:41:23",
"excerpt": "",
"capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n<img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
"frontmatter": {
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
"useduuid": "6c770f3b5"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV010-JFlash简介",
"date": "2025-09-17 07:46:38",
"excerpt": "",
"capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
"frontmatter": {
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "11692369dc744332bc6f2569dd8ec58a",
"useduuid": "11692369d"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-下载与调试概述",
"date": "2025-09-16 23:09:06",
"excerpt": "",
"capture": "一、概述\nSTM32 常见的下载方式有三种: \n| 下载方式 | 使用接口 | 下载条件 | 优缺点 |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
},
{
"url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
"relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
"frontmatter": {
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
"useduuid": "1c4f7fd64"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-JLink怎么使用",
"date": "2025-09-16 23:06:38",
"excerpt": "",
"capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n<img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
"frontmatter": {
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
"useduuid": "e19f8d60a"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-STM32CubeMX工程创建",
"date": "2025-09-16 22:29:13",
"excerpt": "",
"capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】→【New Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\" /\n- 【选择芯片型号】→【Start Project】\n<img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\" />"
},
{
"url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
"frontmatter": {
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
"useduuid": "c0ab32a01"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV002-工程创建",
"date": "2025-09-16 18:36:02",
"excerpt": "<p>接下来就是工程创建啦。</p>\n",
"capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
},
{
"url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
"relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
"frontmatter": {
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
"useduuid": "8d250f7bd"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-STM32CubeMX简介",
"date": "2025-09-16 18:22:04",
"excerpt": "",
"capture": "一、STM32CubeMX\n 1. 简介\n<img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
},
{
"url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
"relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
"frontmatter": {
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"icon": "famicons:logo-markdown",
"permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
"index": true,
"tags": null,
"categories": null,
"copyright": false,
"keywords": null,
"cover": null,
"comments": null,
"mathjax": null,
"top": null,
"description": null,
"tdoc": {
"detailDate": {},
"fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
"useduuid": "aa634dd81"
}
},
"author": {
"name": "苏木",
"link": "https://github.com/docs-site"
},
"title": "LV001-keil简介",
"date": "2025-09-16 07:54:22",
"excerpt": "",
"capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。 \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
}
]
}
},
"groupPosts": {
"categories": {},
"tags": {}
},
"groupCards": {
"categories": [],
"tags": []
}
},
"sidebar": {
"/sdoc/dev-tool/": [
{
"text": "01-keil",
"collapsed": true,
"items": [
{
"text": "LV001-keil简介",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.md"
},
{
"text": "LV002-工程创建",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.md"
},
{
"text": "LV010-程序与编译",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.md"
},
{
"text": "LV015-MDK工程文件简介",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.md"
},
{
"text": "LV016-Output目录文件",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.md"
},
{
"text": "LV017-Listing目录文件",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.md"
},
{
"text": "LV020-SCT分散加载文件",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.md"
},
{
"text": "LV025-SCT文件应用",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.md"
},
{
"text": "LV040-在线调试",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.md"
}
]
},
{
"text": "02-STM32Cube",
"collapsed": true,
"items": [
{
"text": "LV001-STM32CubeMX简介",
"collapsed": true,
"link": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.md"
},
{
"text": "LV002-STM32CubeMX工程创建",
"collapsed": true,
"link": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.md"
},
{
"text": "LV010-Makefile管理工程",
"collapsed": true,
"link": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.md"
},
{
"text": "LV012-Makefile文件分析",
"collapsed": true,
"link": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.md"
},
{
"text": "LV040-LD链接脚本",
"collapsed": true,
"link": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.md"
},
{
"text": "LV030-STM32CubeIDE",
"collapsed": true,
"link": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.md"
}
]
},
{
"text": "10-下载与调试",
"collapsed": true,
"items": [
{
"text": "LV001-下载与调试概述",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.md"
},
{
"text": "LV002-JLink怎么使用",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.md"
},
{
"text": "LV010-JFlash简介",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.md"
},
{
"text": "LV015-STLink怎么使用",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.md"
},
{
"text": "LV020-ST-LINK-Utility简介",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.md"
},
{
"text": "LV030-串口下载",
"collapsed": true,
"link": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.md"
}
]
}
],
"/sdoc/basic/": [
{
"text": "01-概述",
"collapsed": true,
"items": [
{
"text": "LV001-ARM体系结构",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08ba0eae364f31526d00.md"
},
{
"text": "LV010-常见存储器",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08ba13b3329986816cf4.md"
},
{
"text": "LV020-CortexM0简介",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08c738bc16b5b982661d.md"
},
{
"text": "LV022-CortexM0存储器映射",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.md"
},
{
"text": "LV030-CortexM3简介",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08c73a222946645cba90.md"
},
{
"text": "LV035-CortexM3存储器系统",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08c73d361161792b640a.md"
},
{
"text": "LV040-CortexM3异常",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.md"
},
{
"text": "LV040-CortexM3的NVIC中断控制",
"collapsed": true,
"link": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.md"
}
]
},
{
"text": "10-STM32基础",
"collapsed": true,
"items": [
{
"text": "LV001-STM32概述",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.md"
},
{
"text": "LV010-嵌入式C语言",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.md"
},
{
"text": "LV020-STM32怎么开发",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.md"
},
{
"text": "LV021-认识HAL库",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.md"
},
{
"text": "LV030-STM32程序下载",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.md"
},
{
"text": "LV040-STM32系统架构",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.md"
},
{
"text": "LV045-STM32存储器系统",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.md"
},
{
"text": "LV050-STM32地址重映射",
"collapsed": true,
"link": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.md"
}
]
},
{
"text": "20-STM32的启动",
"collapsed": true,
"items": [
{
"text": "LV001-启动文件",
"collapsed": true,
"link": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.md"
},
{
"text": "LV005-启动过程",
"collapsed": true,
"link": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.md"
},
{
"text": "LV010-在内部SRAM调试",
"collapsed": true,
"link": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.md"
}
]
},
{
"text": "30-STM32的中断",
"collapsed": true,
"items": [
{
"text": "LV001-STM32中断简介",
"collapsed": true,
"link": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.md"
}
]
},
{
"text": "40-STM32时钟",
"collapsed": true,
"items": [
{
"text": "LV001-STM32F1时钟系统",
"collapsed": true,
"link": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.md"
},
{
"text": "LV010-STM32F1的SYSCLK",
"collapsed": true,
"link": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.md"
}
]
},
{
"text": "50-STM32内部FLASH",
"collapsed": true,
"items": [
{
"text": "LV001-内部FLASH简介",
"collapsed": true,
"link": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.md"
},
{
"text": "LV010-FLASH操作流程",
"collapsed": true,
"link": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.md"
},
{
"text": "LV020-IAP编程简介",
"collapsed": true,
"link": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.md"
},
{
"text": "LV025-IAP编程实现",
"collapsed": true,
"link": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.md"
}
]
},
{
"text": "60-STM32的内存",
"collapsed": true,
"items": [
{
"text": "LV001-STM32内存简介",
"collapsed": true,
"link": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.md"
},
{
"text": "LV010-内存管理",
"collapsed": true,
"link": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.md"
}
]
},
{
"text": "70-STM32电源管理",
"collapsed": true,
"items": [
{
"text": "LV001-电源管理简介",
"collapsed": true,
"link": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.md"
},
{
"text": "LV010-三种模式实现",
"collapsed": true,
"link": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.md"
}
]
}
],
"/sdoc/peripheral/": [
{
"text": "01-GPIO",
"collapsed": true,
"items": [
{
"text": "LV001-STM32的GPIO简介",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.md"
},
{
"text": "LV010-输入输出模式详解",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.md"
},
{
"text": "LV020-GPIO控制LED",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.md"
},
{
"text": "LV030-按键检测",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.md"
},
{
"text": "LV040-外部中断",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.md"
},
{
"text": "LV045-外部中断实例",
"collapsed": true,
"link": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.md"
}
]
},
{
"text": "10-UART",
"collapsed": true,
"items": [
{
"text": "LV001-串口通信简介",
"collapsed": true,
"link": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.md"
},
{
"text": "LV010-STM32的串口",
"collapsed": true,
"link": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.md"
},
{
"text": "LV020-串口收发实例",
"collapsed": true,
"link": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.md"
}
]
},
{
"text": "15-定时器",
"collapsed": true,
"items": [
{
"text": "LV001-基本定时器简介",
"collapsed": true,
"link": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.md"
},
{
"text": "LV030-通用定时器简介",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.md"
},
{
"text": "LV035-通用定时器的中断",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.md"
},
{
"text": "LV040-通用定时器PWM输出",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.md"
},
{
"text": "LV045-通用定时器输入捕获",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.md"
},
{
"text": "LV050-通用定时器脉冲计数",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.md"
},
{
"text": "LV070-高级定时器简介",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.md"
},
{
"text": "LV075-高级定时器PWM输出",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.md"
},
{
"text": "LV080-高级定时器输出比较模式",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.md"
},
{
"text": "LV085-高级定时器互补输出",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.md"
},
{
"text": "LV090-高级定时器PWM输入",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.md"
},
{
"text": "LV100-SysTick定时器简介",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.md"
},
{
"text": "LV105-自定义延时函数",
"collapsed": true,
"link": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.md"
}
]
},
{
"text": "20-看门狗",
"collapsed": true,
"items": [
{
"text": "LV001-看门狗简介",
"collapsed": true,
"link": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.md"
},
{
"text": "LV010-看门狗使用实例",
"collapsed": true,
"link": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.md"
}
]
},
{
"text": "25-FSMC",
"collapsed": true,
"items": [
{
"text": "01-FSMC基础",
"collapsed": true,
"items": [
{
"text": "LV001-FSMC简介",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.md"
},
{
"text": "LV005-存储器映射与控制器",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.md"
},
{
"text": "LV010-相关HAL库函数",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.md"
}
]
},
{
"text": "05-外部SRAM",
"collapsed": true,
"items": [
{
"text": "LV001-概述",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.md"
},
{
"text": "LV002-XM8A51216简介",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.md"
},
{
"text": "LV005-IS62WV51216简介",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.md"
},
{
"text": "LV015-外部SRAM读写实例",
"collapsed": true,
"link": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.md"
}
]
}
]
},
{
"text": "30-I2C",
"collapsed": true,
"items": [
{
"text": "LV001-STM32的I2C",
"collapsed": true,
"link": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.md"
},
{
"text": "LV010-AT24C02简介",
"collapsed": true,
"link": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.md"
},
{
"text": "LV015-AT24C02使用实例",
"collapsed": true,
"link": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.md"
}
]
},
{
"text": "35-SPI",
"collapsed": true,
"items": [
{
"text": "LV001-STM32的SPI",
"collapsed": true,
"link": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.md"
},
{
"text": "LV010-W25QXXX简介",
"collapsed": true,
"link": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.md"
},
{
"text": "LV015-SPI读写W25QXXX实例",
"collapsed": true,
"link": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.md"
}
]
},
{
"text": "40-DMA",
"collapsed": true,
"items": [
{
"text": "LV001-DMA简介",
"collapsed": true,
"link": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.md"
},
{
"text": "LV010-DMA使用实例",
"collapsed": true,
"link": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.md"
}
]
},
{
"text": "50-SDIO",
"collapsed": true,
"items": [
{
"text": "LV001-SD卡简介",
"collapsed": true,
"link": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.md"
},
{
"text": "LV015-SD卡的操作",
"collapsed": true,
"link": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.md"
},
{
"text": "LV020-STM32的SDIO",
"collapsed": true,
"link": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.md"
},
{
"text": "LV025-读写SD卡实例",
"collapsed": true,
"link": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.md"
}
]
},
{
"text": "55-RTC时钟",
"collapsed": true,
"items": [
{
"text": "LV001-RTC简介",
"collapsed": true,
"link": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.md"
}
]
},
{
"text": "60-USB",
"collapsed": true,
"items": [
{
"text": "LV001-USB简介",
"collapsed": true,
"link": "/sdoc/peripheral/usb/126b095167b12a8376012928.md"
},
{
"text": "LV010-USB读卡器实例",
"collapsed": true,
"link": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.md"
}
]
}
],
"/sdoc/advanced-chapter/": [
{
"text": "01-文件系统",
"collapsed": true,
"items": [
{
"text": "LV001-文件系统简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.md"
},
{
"text": "LV010-FATFS简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.md"
},
{
"text": "LV015-基于SPIFLASH移植FATFS",
"collapsed": true,
"link": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.md"
},
{
"text": "LV015-基于SD卡移植FATFS",
"collapsed": true,
"link": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.md"
},
{
"text": "LV025-FATFS中自定义的一些函数",
"collapsed": true,
"link": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.md"
}
]
},
{
"text": "02-ESP8266",
"collapsed": true,
"items": [
{
"text": "LV001-ESP8266模块简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.md"
},
{
"text": "LV010-AT指令",
"collapsed": true,
"link": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.md"
},
{
"text": "LV015-ESP8266固件烧录",
"collapsed": true,
"link": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.md"
},
{
"text": "LV020-ATK-ESP8266使用实例",
"collapsed": true,
"link": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.md"
}
]
},
{
"text": "03-OV7725",
"collapsed": true,
"items": [
{
"text": "LV001-ATK-MC6625F模块简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.md"
},
{
"text": "LV010-SCCB协议简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.md"
},
{
"text": "LV020-OV7725简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.md"
}
]
},
{
"text": "04-显示屏",
"collapsed": true,
"items": [
{
"text": "01-OLED",
"collapsed": true,
"items": [
{
"text": "LV001-OLED简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.md"
},
{
"text": "LV010-8080时序驱动OLED",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.md"
}
]
},
{
"text": "02-LCD",
"collapsed": true,
"items": [
{
"text": "LV001-LCD简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.md"
},
{
"text": "LV010-液晶控制原理",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.md"
},
{
"text": "LV015-ATK-MD0280模块",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.md"
},
{
"text": "LV016-IL9341简介",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.md"
},
{
"text": "LV020-FSMC模拟8080时序",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.md"
},
{
"text": "LV025-LCD显示实例",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.md"
},
{
"text": "LV030-字符编码基础",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.md"
},
{
"text": "LV035-中英文的显示",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.md"
},
{
"text": "LV040-实现任意大小字模",
"collapsed": true,
"link": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.md"
}
]
}
]
},
{
"text": "90-FreeRTOS",
"collapsed": true,
"items": [
{
"text": "01-FreeRTOS简介",
"collapsed": true,
"items": [
{
"text": "LV001-FreeRTOS简介",
"collapsed": true,
"link": "/docs/126b096ee4d10f3bb564b607.md"
}
]
}
]
}
],
"/sdoc/communication/": [
{
"text": "01-I2C协议",
"collapsed": true,
"items": [
{
"text": "LV001-I2C简介",
"collapsed": true,
"link": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.md"
},
{
"text": "LV020-AT24C02实例分析",
"collapsed": true,
"link": "/sdoc/communication/i2c/126b09043fca31869028172d.md"
}
]
},
{
"text": "10-串口",
"collapsed": true,
"items": [
{
"text": "LV001-串口通信简介",
"collapsed": true,
"link": "/sdoc/communication/serial-port/126b0904421d06db7b197798.md"
},
{
"text": "LV020-RS232简介",
"collapsed": true,
"link": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.md"
},
{
"text": "LV030-RS485简介",
"collapsed": true,
"link": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.md"
}
]
},
{
"text": "30-SPI",
"collapsed": true,
"items": [
{
"text": "LV001-SPI简介",
"collapsed": true,
"link": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.md"
}
]
},
{
"text": "40-CAN",
"collapsed": true,
"items": [
{
"text": "LV001-CAN通信简介",
"collapsed": true,
"link": "/sdoc/communication/can/126b0950f34624bdf8f7407f.md"
}
]
},
{
"text": "LV001-通信概述",
"collapsed": true,
"link": "/sdoc/communication/126b09043e1c12685fda3fb8.md"
}
]
}
}Page Data
{
"title": "Runtime API Examples",
"description": "",
"frontmatter": {
"outline": "deep"
},
"headers": [],
"relativePath": "Examples/api-examples.md",
"filePath": "Examples/api-examples.md",
"lastUpdated": 1758107786000
}Page Frontmatter
{
"outline": "deep"
}More
Check out the documentation for the full list of runtime APIs.